添加外鍵約束出錯
mysql> ALTER TABLE t2 ADD FOREIGN KEY (pid) REFERENCES t1(id);
ERROR 1005 (HY000): Can't create table 't1.#sql-b8c_1' (errno: 150)
我搜索了一下原因說是缺少索引,但是我的兩個表都有主鍵,老師不是說創建外鍵約束的時候自動創建索引嗎為什么我的不行呢。跟老師代碼一模一樣,它添加成功之后字表有了KEY字段,代表索引,我添加不成功。
mysql> ALTER TABLE t2 ADD FOREIGN KEY (pid) REFERENCES t1(id);
ERROR 1005 (HY000): Can't create table 't1.#sql-b8c_1' (errno: 150)
我搜索了一下原因說是缺少索引,但是我的兩個表都有主鍵,老師不是說創建外鍵約束的時候自動創建索引嗎為什么我的不行呢。跟老師代碼一模一樣,它添加成功之后字表有了KEY字段,代表索引,我添加不成功。
2017-09-14
舉報
2017-09-14
在mysql 中建立引用約束的時候會出現MySQL ERROR 1005: Can't create table (errno: 150)的錯誤信息結果是不能建立 引用約束。
出現問題的大致情況
1、外鍵的引用類型不一樣,如主鍵是int外鍵是char
2、找不到主表中引用的列
3、主鍵和外鍵的字符編碼不一致,也可能存儲引擎不一樣
4、MySQL支持外鍵約束,但表類型必須為 InnoDB?