外键约束的要求
1,父表和子表必须使用相同的存储引擎,而且禁止使用临时表. 2, 数据表的存储引擎只能为InnoDB. 3, 外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同 4, 外键列和参照列必须创建索引.如果外键列不存在索引的话,mysql将自动创建索引. 例如 以下创建外键的 表 CERATE TABLE provinces( id SMALLINT(5) UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL, ) CREATE TABLE users( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, pid SMALLINT(5) UNSIGNED , FOREIGN KEY (pid) REFERENCES provinces (id) ) user表中的 pid 就是外键,需要和子表的 provinces中的 id 字段配置一致,不然会报错 语法为 FOREIGN KEY (pid) REFERENCES provinces (id) 来源: https://www.cnblogs.com/2019huha/p/11804736.html