在建立數據庫表時出現建立表失敗的狀況,以下:sql
# 建立部門表 CREATE TABLE department( depid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, depname VARCHAR(10) NOT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8; # 建立員工表 CREATE TABLE employee( empid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10) NOT NULL, sex ENUM ('男','女'), title VARCHAR(10), birthday DATE, depid INT, CONSTRAINT emp_depid_key FOREIGN KEY (depid) REFERENCES department(depid) ON UPDATE CASCADE ON DELETE CASCADE )ENGINE=INNODB DEFAULT CHARSET=utf8;
執行後報錯:1005
這種錯誤通常是由從表的外鍵和主表的主鍵不對應引發的
數據庫
- 仔細觀察後發現department中的 depid 主鍵字段是UNSIGNED 無符號型的;
- 把從表employee中的 depid 也加上UNSIGNED 問題便可解決。