- 首先創建了個主表 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 約束就可以了。