2017-08-15 81 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)供進一步閱讀。 –

相關問題