淘先锋技术网

首页 1 2 3 4 5 6 7
查询表mysql,为什么MySQL创建外键时会一直报错呢?

谢谢提问,问题描述不清楚,下面我就以MySQL外建的理论并加上实际操作,希望你能学习并加以运用,明白自己的错误!

1.外建的使用条件:<1>两个表必须使用InnoDB引擎<2>外建必须建立了索引,MySQL4.1.2以后的版本在建立外建时会自动创建索引<3>外建关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,但int和char则不可以。2.外建使用语法

constraint 外键名 foreign key(字段名) references 表名(字段名)

3.实际操作

<1>创建一个门表tb_dept1表,并且查询表结构

create table tb_dept1 ( id int(11) not null primary key, name varchar(22) not null, location varchar(50));

<2>定义数据表tb_emp5,让它的键deptId作为外建关联到tb_dept1的主键id

create table tb_emp5( id int(11) not null primary key,name varchar(22),deptId int(11),salary float,constraint fk_ed foreign key(deptId) references tb_dept1(id));

注:MUL不是外建的标识,而是索引的标识。普通索引:key|index

4.外建的好处

使用外键的好处是可以使得两张表存在关联,保证数据的一致性和实现一些级联的操作

【回答完毕】

关注财务总监的数据分析,学习与数据做朋友!