如何将新列添加到现有的复合主键
问题描述:
我遇到了问题,因为我已经有一个MYSQL表中的复合主键。但是现在我又向该表中添加了另一列,并且由于需要进行一些更改,我必须以这种方式修改该组合主键,以便我需要将此前提到的列添加到该组合主键列表中。任何人都可以告诉我如何改变该表而不丢弃现有的复合主键。我在Rails项目中这样做如何将新列添加到现有的复合主键
答
你不能改变主键。你必须删除并重新添加它:
ALTER TABLE MyTable
DROP PRIMARY KEY,
ADD PRIMARY KEY (old_col1, old_col2, new_col);
+0
这是这样做的方式,如果有什么东西阻止你放弃主键 – PrashanD 2017-06-27 08:34:25
答
但是如果一个密钥不存在? 例如:
ALTER TABLE xxxx ADD id INT NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(id,id2,id3);
请注意,我有外键一些是在复合主键 – nash 2010-02-25 15:00:06
的外键的部分主键列?这是不好的魔咒。你真的应该切换到自动增量主键。 – MindStalker 2010-02-25 15:16:42
放弃钥匙不应该放弃价值 - 为什么你不能放弃PK? – reech 2010-02-25 15:44:37