怎么在mysql添加外键 mysql添加外键失败

mysql建立外键时,多对多如何建立?一张表中的主键只能有一个,外键可以有多个 , 如果一张表中多个列都需要被别的表的外键参考,需要使用候选码(非空并且唯一),具体到你的这个问题的需求可以考虑用如下方法解决:
把a表中的bookid和authorid都设置为非空并且唯一,即
create table a(bookid int not null unique, authorid int not null unique);
然后在book表和author表中就可以分别设置外键来参照a表中两个不同的字段了 。
打开我的navicat , 然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
2. 在弹出的对话框中找到“Foreign Keys”,然后单机 。
3. 然后会出现一个设置外键的界面,一共有七列 。简单介绍一下这几列的意思 。‘name’:可以不填,你一会保存成功系统会自动生成 。FieldName’:就是你要把哪个键设置为外键 。这里选择‘dept’ , ‘Reference DadaBase’:外键关联的数据库 。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作 。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null.
4. 设置完成后点击‘save’保存退出 , 也可以点击‘add Foreign Key’再添加一个外键 。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’ 。如下图:
2. 在弹出的对话框中找到“Foreign Keys”,然后单机 。如下图:
3. 然后会出现一个设置外键的界面,一共有七列 。简单介绍一下这几列的意思 。‘name’:可以不填,你一会保存成功系统会自动生成 。FieldName’:就是你要把哪个键设置为外键 。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库 。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段 , 这里是code‘ondelete’:就是删除的时候选择的动作 。这里我的选择是setNull , 意思就是当关联的表删除以后,teacher》dept字段会设置为null 。如图
4. 设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键 。k如图:
MySql如何创建外键create
table
volunteer(
志愿者编号
varchar(6)
not
null,
志愿者姓名
varchar(8),
班级编号
varchar(4),
constraint
PK_V
primary
key
(志愿者编号));
create
table
class(
班级编号
varchar(4),
班级名称
varchar(20),
学院
varchar(20),
constraint
PK_C
primary
key(班级编号),
班级编号
varchar
foreign
key
references
volunteer(班级编号));
你这个试下,我试了可以的
希望可以帮到你
SQL
创建外键语句的方法:constraint
外键名字
foreign
key
references
外键表(外键字段)
mysql表创建好后添加外键首先要创建一个字段:alter table 表名 add 字段名 字段类型;
再添加外键约束:alter table 需加外键怎么在mysql添加外键的表 add constraint 外键名 foreign key(需加外键表怎么在mysql添加外键的字段名) references 关联表名(关联字段名);
注意:外键名不能重复
mysql怎么设定外键为已经添加好的数据表添加外键:
语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)
//FK_ID是外键的名称
/*

推荐阅读