我知道這個問題發佈了很多,我仔細檢查了我的代碼,但無法找到爲什麼當我使用Foreign Key創建表時,mysql給了我一個錯誤。無法在mysql中使用外鍵創建表
mysql> CREATE TABLE Act_Model(
-> code VARCHAR(8) NOT NULL,
-> model VARCHAR(64) NOT NULL,
-> PRIMARY KEY (code))ENGINE = INNODB;
Query OK, 0 rows affected (0.09 sec)
mysql> CREATE TABLE IBT_ActItem(
-> model VARCHAR(64) NOT NULL,
-> flagbit BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
-> PRIMARY KEY(model),
-> FOREIGN KEY(model) REFERENCES Act_Model(model))ENGINE = INNODB;
ERROR 1005 (HY000): Can't create table 'test.ibt_actitem' (errno: 150)
mysql> CREATE TABLE IBT_ActItem(
-> model VARCHAR(64) NOT NULL,
-> flagbit BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
-> PRIMARY KEY(model))ENGINE = INNODB;
Query OK, 0 rows affected (0.09 sec)
當我用show engins;
,InnoDB的它給我:
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
你能幫我找到哪裏是我的錯?由於
嘗試創建表格首先,然後添加外鍵。 – Kermit
你應該在設置fk之前製作pk。 –
你確定你想要這樣嗎?對我來說看起來有點奇怪。 –