2 guomin beiluoshimen guomin_beiluoshimen 于 2016.04.14 00:34 提问

mysql 主键 在别的表里面当外键 不允许重复

在mysql数据库里面,有三张表,如下:
student(no,name,class)no是主键,
activity(name,time,place)name是主键,
select(id,no,name)no,name是外键且分别对应表student和activity
问题:表select输入数据(1,"000‘’,“排球”);(2,"001‘’,“看书”);没问题
再输入数据(3,"000‘’,“看书”)就有问题了。请问为什么啊??
主键在自己的表里面才需要独一无二啊,为什么作为外键在别的表里面不能重复呢??

4个回答

starsky_xkl
starsky_xkl   2016.04.14 10:11
已采纳

或许你没有这样声明主键 primary key(no,name)

guomin_beiluoshimen
guomin_beiluoshimen 知道啦,问题出在表里面别的列。。(表select的外键name所在的表activity) 里面有一个外键 是表student的主键,出现了层层外键的情况,应该就是这个错了,要把表拆分。
一年多之前 回复
starsky_xkl
starsky_xkl 错误提示是什么
一年多之前 回复
guomin_beiluoshimen
guomin_beiluoshimen 我刚刚又把表select删了,重新建表(不要id主键了,设置了primary key(no,name) ),还是不行,非得no和name完全不一样
一年多之前 回复
guomin_beiluoshimen
guomin_beiluoshimen 在select里面声明了unique(no,name)啊
一年多之前 回复
guomin_beiluoshimen
guomin_beiluoshimen select已经有主键id了,怎么再声明一个组合主键啊。。我试着声明了unique(no,name)也不可以,天呐。。。怎么办
一年多之前 回复
starsky_xkl
starsky_xkl select
一年多之前 回复
guomin_beiluoshimen
guomin_beiluoshimen 在哪个表里面这样声明啊?
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.14 00:42

mysql主键和外键
MySQl主键以及外键
mysql的主键外键
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

XueYunLang
XueYunLang   2016.04.14 01:00

看一下select的建表语句,看里面有没有索引约束

qq_34653481
qq_34653481   2016.04.14 01:04

你可以试试 003 篮球

qq_34653481
qq_34653481 是 000 篮球 试一下
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!