0
我正在MySQL中創建一個數據庫,並且在向表中添加外鍵時遇到問題。在創建表格時,我已經將大部分外鍵添加到我的表格中,但顯然我無法將其全部添加到創建過程中。我試圖用下面的方法添加剩下的外鍵。「鍵列不存在於表中」
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID);
由於某些原因,標題中列出的錯誤消息不斷彈出。代碼如下。我可以看到桌子有點滑稽,但是如果你從左到右閱讀它們,你可以看到它說的是什麼。你怎麼看?
mysql> show columns from games;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| gameID | int(11) | NO | PRI | NULL | auto_increment |
| videoGames | varchar(30) | NO | | NULL | |
| year | int(11) | NO | | NULL | |
| genreID | int(11) | NO | MUL | NULL | |
| companyID | int(11) | NO | MUL | NULL | |
| directorID | int(11) | NO | MUL | NULL | |
+------------+-------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
mysql> show columns from consoles;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| consoleID | int(11) | NO | PRI | NULL | auto_increment |
| console | varchar(20) | NO | | NULL | |
| yearReleased | int(11) | NO | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
mysql> alter table games
-> add foreign key(consoleID) references consoles(consoleID);
ERROR 1072 (42000): Key column 'consoleID' doesn't exist in table
SHOW CREATE TABLE
回答
。在你的表
games
沒有現場consoleID
。您需要在嘗試添加約束之前創建它。這將增加consoleID
並創建約束:你應該考慮增加在那裏你因爲某些遊戲multiplateform
consoles
與games
相關聯的第三表。 :)來源
2015-03-31 23:53:09
哦,非常感謝!哈哈其實我有一個計劃,我只是還沒有做到!再次感謝! – 2015-04-01 14:39:16
相關問題