mysql 使用外鍵 foreign key 時的錯誤解決

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章