我遇到了一个问题,我在MYSQL表中已经有了一个复合主键。但是现在我已经在该表中添加了另一列,并且由于一些需求更改,我必须以这样的方式修改该复合主键,即我需要将之前提到的列添加到该复合主键列表中。任何人都可以告诉我如何在不删除现有复合主键的情况下更改该表。我在Rails项目中这样做
答案 0 :(得分:28)
您无法更改主键。您必须删除并重新添加它:
ALTER TABLE MyTable
DROP PRIMARY KEY,
ADD PRIMARY KEY (old_col1, old_col2, new_col);
答案 1 :(得分:0)
但是如果一个密钥不存在? 例如:
ALTER TABLE xxxx ADD id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(id,id2,id3);