我想在Amazon Redshift中更改表,并将两列作为复合主键?
我试过这段代码:
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,但我需要为特定需求的表设置复合主键。
首先丢弃PK_1约束然后创建第二个
ALTER TABLE tableNameHere DROP CONSTRAINT PK_1;
然后
ALTER TABLE tableNameHere ADD CONSTRAINT PK_1 PRIMARY KEY (col1, col2);