34,588
社区成员
发帖
与我相关
我的任务
分享
先不管技术,先想清业务。
学员选课,一个学员只能选择一个课吗?
如果是,那出错是正确的,因为这个学员已经选择过课了。
如果不是,那你这个表设计有问题,学员sno不能作为主键。
因为作为主键,那一个学员就只能有一条记录。
从常识来说,一个学员应该是可以选择多个课。
所以,你出错的本质是你没有想清楚业务。
正确的做法是 sno 不要做为主键,另外弄一个与业务无关的 id 自增列作主键id 就可以了。
你要先确定你的业务,插入数据时,如果插入的记录是已存在的,要替换原记录,还是忽略改行记录,还是报错终止。mysql都有对应的insert语法来处理
是主键重复了
主键重复了