2010-02-25 59 views
17

我遇到了問題,因爲我已經有一個MYSQL表中的複合主鍵。但是現在我又向該表中添加了另一列,並且由於需要進行一些更改,我必須以這種方式修改該組合主鍵,以便我需要將此前提到的列添加到該組合主鍵列表中。任何人都可以告訴我如何改變該表而不丟棄現有的複合主鍵。我在Rails項目中這樣做如何將新列添加到現有的複合主鍵

+0

請注意,我有外鍵一些是在複合主鍵 – nash 2010-02-25 15:00:06

+0

的外鍵的部分主鍵列?這是不好的魔咒。你真的應該切換到自動增量主鍵。 – MindStalker 2010-02-25 15:16:42

+0

放棄鑰匙不應該放棄價值 - 爲什麼你不能放棄PK? – reech 2010-02-25 15:44:37

回答

25

你不能改變主鍵。你必須刪除並重新添加它:

ALTER TABLE MyTable 
    DROP PRIMARY KEY, 
    ADD PRIMARY KEY (old_col1, old_col2, new_col); 
+0

這是這樣做的方式,如果有什麼東西阻止你放棄主鍵 – PrashanD 2017-06-27 08:34:25

0

但是如果一個密鑰不存在? 例如:

ALTER TABLE xxxx ADD id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(id,id2,id3); 
相關問題