您的位置:首页 > 数据库 > MySQL

mysql 使用外键 foreign key 时的错误解决

2016-09-24 17:56 585 查看
首先创建了个主表 test_proj

CREATE TABLE test_proj(
pid INT(3) ZEROFILL PRIMARY KEY  AUTO_INCREMENT,
proj_name VARCHAR(20)
)


2.然后创建附表 test_info, 字段 testProj_id 使用外键约束

CREATE TABLE test_info(
tid INT(3) ZEROFILL PRIMARY KEY AUTO_INCREMENT,
test_time DATE,
testProj_id INT(3),
stGrade_id INT(3),

CONSTRAINT test_info_test_proj_fk FOREIGN KEY(testProj_id) REFERENCES test_proj(pid) ON update
)


然后问题就来了

<e>查询:CREATE TABLE test_info( tid INT(3) ZEROFILL PRIMARY KEY AUTO_INCREMENT, test_time DATE, testProj_id INT(3) , stGrade_id INT(3),...

错误代码: 1215
Cannot add foreign key constraint


原因:

两张表里的主键和外键的字段的数据类型或者数据长度不一样

这里是副表字段 testProj_id 跟 主表的 pid 类型不同,导致错误。

解决办法:在testProj_id INT(3) 后面加 ZEROFILL 约束就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: