2

我在没有任何 PRIMARY KEY 的情况下在 CRDB 中创建了一个表,并将我的数据填充到表中。

现在表已创建并填充了数据,我想应用约束以使第一列成为 PRIMARY KEY。但我收到一个错误:

约束是:

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

错误是:

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

我认为如果没有提到 PRIMARY KEY,CRDB 中有原因,CRDB 会自动将 PRIMARY KEY 分配给名为: 的表rowid

如何在 CRDB 的表中查看 PRIMARY KEY?以及如何将我想要的列设为 PRIMARY KEY?

4

1 回答 1

3

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

您必须使用表达式中设置的主键重新创建表CREATE TABLE

于 2017-08-15T19:56:08.123 回答