場景:爲什麼我不能刪除外鍵?
Parent table | id primary key, message_p
Child table | id primary key, parent_id foreign key, message_c
我在父表中數據的第1行和2行子表中的數據。我想測試FK關係執行的約束條件。然後我試圖從子表中刪除外鍵,以便evene雖然子表中有2行,然後我可以繼續和刪除父行:
alter table child
drop foreign key parent_id
然後我得到了以下錯誤:
[1091 - Can't DROP 'parent_id'; check that column/key exists]
注:
show create table child
CREATE TABLE `track` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` int(11) NOT NULL,
`title` varchar(50) DEFAULT NULL,
`artist` varchar(50) DEFAULT 'TBA',
`album` varchar(50) DEFAULT 'TBA',
`genre` varchar(50) DEFAULT 'TBA',
`dance_style` varchar(50) DEFAULT 'TBA',
PRIMARY KEY (`id`),
KEY `member_id` (`member_id`),
CONSTRAINT `track_ibfk_1` FOREIGN KEY (`member_id`) REFERENCES `member` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
我失去了我的查詢或約FK的一般理解的東西嗎?
貌似你試圖通過列名來刪除一個外鍵,而不是由外鍵的名稱。 –
另外你的'show create table child'向我們展示'track'表,確定你粘貼了正確的代碼? –
但請注意,在該表上,約束名稱是'track_ibfk_1'。你的'child'表應該會發生同樣的情況,所以你試圖按列名刪除外鍵,而不是外鍵名。 –