Mysql外键约束的要求

时间:2022-09-21 11:10:21

1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2、数据表的存储引擎只能为InonoDB。
3、外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度可以不同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,Mysql将自动创建索引。

编辑数据表的默认存储引擎
MYSQL配置文件my.ini

default-storage-engine=INNODB

验证外键列和参照列的数据类型应该相同的问题。

比如创建一张省份表和用户表,用户的身份外键引用省份表的id

create table province( id smallint unsigned not null primary key auto_increment, pname varchar(20) not null );

show create table province// 查看表存储引擎 create table users( id smallint unsigned primary key auto_increment, username varchar(20) not null, pid bigint, foreign key(pid) references province(id) );

这样运行会报MYSQL 150错误。即必须具有相同的数据类型。

mysql的主键会自动创建索引,如何验证呢?注意\G可以查看更好格式排版

show indexs from province\G;

推广

专业墙纸贴纸厨房用具装饰出售,本人网店经营,访问即是爱

博客对你有用记得访问下哦,增加下访问量,如有需要可以下单购买哦^_^。https://item.taobao.com/item.htm?id=570637716145