首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Amazon Redshift中更改表以将两列设置为主键?

如何在Amazon Redshift中更改表以将两列设置为主键?
EN

Stack Overflow用户
提问于 2019-03-29 18:52:15
回答 1查看 3.7K关注 0票数 1

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

我尝试了下面的代码片段:

代码语言:javascript
复制
ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1);

但它只需设置一个主键即可。

然后我试着:

代码语言:javascript
复制
ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1, col2);

我得到了一个错误:

代码语言:javascript
复制
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,但我需要为表设置一个组合主键,以满足特定需求。

EN

回答 1

Stack Overflow用户

发布于 2019-03-29 18:54:41

第一个删除PK_1约束,然后创建第二个

代码语言:javascript
复制
ALTER TABLE tableNameHere DROP CONSTRAINT PK_1;

然后

代码语言:javascript
复制
ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1, col2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55415822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档