2017-08-15 3 views
2

Ich habe eine Tabelle in CRDB ohne PRIMARY KEY erstellt und meine Daten in die Tabelle gefüllt.PRIMARY KEY-Einschränkung in CockroaachDB anwenden - mehrere Primärschlüssel Fehler

Jetzt, da die Tabelle erstellt und mit Daten gefüllt wird, möchte ich eine Einschränkung anwenden, um die erste Spalte als PRIMARY KEY zu definieren. Aber ich erhalte eine Fehlermeldung:

Die Einschränkung ist:

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

und der Fehler ist:

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

ich glaube, es Grund in CRDB ist, wenn kein Primärschlüssel genannt wird, automatisch CRDB wird Weisen Sie der Tabelle einen PRIMÄREN SCHLÜSSEL zu: rowid.

Wie kann ich PRIMARY KEY in einer Tabelle in CRDB sehen? und Wie kann ich die Spalte, die ich als primärer Schlüssel haben möchte?

Antwort

3

Gegenwärtig hat CockroachDB die Einschränkung, dass Sie den Primärschlüssel einer Tabelle nach der Erstellung nicht ändern können. Wenn Sie eine Tabelle ohne Primärschlüssel erstellen, wird unter der Haube eine unsichtbare rowid Spalte für Sie erstellt und als Primärschlüssel festgelegt.

Sie müssen Ihre Tabelle mit einem Primärschlüssel neu erstellen, der im Ausdruck CREATE TABLE festgelegt ist.

+1

[Dokumentation] (https://www.cockroachlabs.com/docs/stable/primary-key.html) für weitere Lektüre. –

Verwandte Themen