【问题标题】:How to ALTER TABLE in Amazon Redshift to set two columns as Primary Key?如何在 Amazon Redshift 中更改表以将两列设置为主键?
【发布时间】:2019-03-29 10:52:14
【问题描述】:

我想更改 Amazon Redshift 中的表,并将两列作为复合主键?

我试过这段代码sn-p:

ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1);

但它只设置一个主键就可以了。

然后我尝试了:

ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1, col2);

我得到一个错误:

Invalid operation: multiple primary keys for table "t_sim_data" are not allowed;

PS_1:我已经阅读了Redshift : defining composite primary key,但在那个问题中,它是关于创建而不是更改表。

PS_2:我的集群中有其他表,我可以看到它们有一个复合(两列)主键。因此,在 Amazon Redshift 中绝对可以有一个复合主键。

PS_3:我知道 Redshift 的强大之处在于设置 DistKey 和 SortKey,但我需要为表设置复合主键以满足特定需求。

【问题讨论】:

  • 您需要先DROP CONSTRAINT,然后再COMMITADD CONSTRAINT。

标签: sql amazon-redshift primary-key composite-primary-key


【解决方案1】:

然后首先删除 PK_1 约束 创建第二个

ALTER TABLE tableNameHere DROP CONSTRAINT PK_1;

然后

ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1, col2);

【讨论】:

  • 谢谢!但仍然出现相同的错误:无效操作:不允许表 tableNameHere 的多个主键;
猜你喜欢
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 2013-06-10
  • 2012-07-19
  • 2015-09-10
  • 1970-01-01
相关资源
最近更新 更多