2017-04-26 65 views
3

我已經試用過語法:如何在mysql中刪除外鍵?

Alter Table bc DROP FOREIGN KEY STUD_ID; 

這是給錯誤:無法DROP 'STUD_ID';檢查列/鍵存在

Alter Table bc DROP CONSTRAINT STUD_ID; 

這是給錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSTRAINT STUD_ID' at line 1

建議我的可能途徑。

+0

第一個查詢就可以了。您的密鑰可能與索引列不同。運行'show index from bc' –

+0

嗨,我在第一個查詢中看不到任何問題。你可以在這裏上傳你的餐桌嗎? –

+0

@juergend完成了。謝謝! – XYZ

回答

-1
alter table bc drop foreign key forconstraintname 
+1

即使我的評論包含更多的信息。 –

+0

雖然這段代碼片段是受歡迎的,並且可能會提供一些幫助,但它會[如果它包含解釋](/ meta.stackexchange.com/q/114762)* [如何解決該問題] [會大大改進。沒有這些,你的答案就沒有什麼教育價值了 - 記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –

0

您的第一個查詢有效。它告訴你沒有這樣的鑰匙掉落。這意味着你的鑰匙有另一個名字。它與它索引的列名稱不同。運行

show index from bc 

顯示所有關鍵的名稱,然後用正確的名稱再次運行查詢

Alter Table bc DROP FOREIGN KEY <STUD_ID_index_name> 
1
ALTER TABLE TableName DROP FOREIGN KEY ForeignKeyConstraintName; 

希望這有助於:)

+0

@peter謝謝!完成。 – XYZ