2017-08-15 82 views
2

我在CRDB中创建了一个没有任何PRIMARY KEY的表,并将我的数据填充到表中。在CockroaachDB中应用PRIMARY KEY约束 - 多个主键错误

既然该表已创建并填充数据我想应用约束使第一列作为PRIMARY KEY。但是,我得到一个错误:

的约束是:

ALTER TABLE “MyDB”.“SALES” ADD CONSTRAINT “SALES_PK” PRIMARY KEY (“S_ID”); 

和错误是:

pq: multiple primary keys for table “SALES” are not allowed. 

我认为原因是CRDB如果没有主键中提到,CRDB自动将将一个PRIMARY KEY分配给名为:rowid的表。

如何在CRDB表中看到PRIMARY KEY? 和 如何将我想要的列作为PRIMARY KEY?

回答

3

目前,CockroachDB具有限制,即在创建表后不能修改表的主键。如果你创建一个没有主键的表格,那么将会为你创建一个不可见的rowid列并将其设置为主键。

您将不得不用CREATE TABLE表达式中的主键集重新创建表格。

+1

[Documentation](https://www.cockroachlabs.com/docs/stable/primary-key.html)供进一步阅读。 –

相关问题