如何用JAVA修改数据库的记录?可能有主外键的约束,不能修改该项记录。详细看下图

学生选课管理是修改学生选课的记录。可是不能修改课程号,我要的效果是修改学生选的课程号,连成绩也一起改。学号有相同的,表示1个学生选修多门课,但是我只想改一门课,该怎么写s... 学生选课管理是修改学生选课的记录。可是不能修改课程号,我要的效果是修改学生选的课程号,连成绩也一起改。学号有相同的,表示1个学生选修多门课,但是我只想改一门课,该怎么写sql语句?
我写的是错的

学生选课表SC的关系图如下

告诉我sql语句改怎么写能达到我想要的效果。请讲清楚点,太简单我看不懂
展开
 我来答
百度网友9ccec88
2014-12-14 · TA获得超过2018个赞
知道大有可为答主
回答量:2154
采纳率:50%
帮助的人:1601万
展开全部

不是sql的问题,是你主键的选择有问题。主键是不能修改的,而你这边用的是联合主键,学号,课程号一起作为联合主键,结果自然是不能改学号以及课程号。(总之,主键不能修改)

方法麻:

  1. 新增,删除自然是没问题,但是当要将某个已选课程换为其它课程时,先删掉原记录,然后重新插入一条。

  2. 不用联合主键来实现,代码里面自已加入不允许重复的学号+课程号的判断。

追问
我用学号123添加记录也不行 sql="INSERT INTO SC VALUES('"+jTextField1.getText()+"','"+jTextField2.getText()+"','"+jTextField3.getText()+"')";
sql语句确实有问题,因为学号很多相同,因为一个学生选修多门课,我想只修改一条记录的sql语句是什么?
追答
饿,这个要不你把你这东西发给我吧,具体看看试试……,私信联系
主宰比赛Eddie
2014-12-14 · TA获得超过1868个赞
知道小有建树答主
回答量:574
采纳率:0%
帮助的人:119万
展开全部
你的SQL语句没有问题。
你可以修改课程号,但是你用的是2个主键约束
当出现下面这种情况时就会出现错误提示
主键1 主键2 同时完全相同
举个例子
你的学生A 已经选择了课程a,b,c
你修改其中任意一项为d是没问题的
但是如果你修改其中的bc 改称a 就会出错,因为课程同样是主键之一,不能重复的
追问

其实不重复也不能改的,9512101学生没有选修c05课程,但是也不行

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东岳情
2014-12-14 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:18.1万
展开全部
你现在的sql语句是什么样的
追问
看我上面有一张图是我的
SQL语句,那句不能修改记录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式