如何将新列添加到现有复合主键

时间:2010-02-25 14:44:42

标签: mysql

我遇到了一个问题,我在MYSQL表中已经有了一个复合主键。但是现在我已经在该表中添加了另一列,并且由于一些需求更改,我必须以这样的方式修改该复合主键,即我需要将之前提到的列添加到该复合主键列表中。任何人都可以告诉我如何在不删除现有复合主键的情况下更改该表。我在Rails项目中这样做

2 个答案:

答案 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);