Ich kann den Syntaxfehler beim Erstellen eines zusammengesetzten Schlüssels nicht verstehen. Es kann ein logischer Fehler sein, weil ich viele Sorten getestet habe.
Wie erstellen Sie zusammengesetzte Schlüssel in Postgres?
CREATE TABLE tags
(
(question_id, tag_id) NOT NULL,
question_id INTEGER NOT NULL,
tag_id SERIAL NOT NULL,
tag1 VARCHAR(20),
tag2 VARCHAR(20),
tag3 VARCHAR(20),
PRIMARY KEY(question_id, tag_id),
CONSTRAINT no_duplicate_tag UNIQUE (question_id, tag_id)
);
ERROR: syntax error at or near "("
LINE 3: (question_id, tag_id) NOT NULL,
^
sql
postgresql
composite-key
Léo Léopold Hertz 준영
quelle
quelle
tag1
durchgehenden Spaltentag3
deuten darauf hin, dass Sie möglicherweise weitere Designverbesserungen vornehmen müssen. Vielleicht hilft eine separate Frage mit einer Beschreibung Ihres Modells in natürlicher Sprache und einigen Beispieldatensätzen.Der Fehler, den Sie erhalten, steht in Zeile 3. Das heißt, er ist nicht in
aber früher:
Die korrekte Tabellendefinition entspricht der von Pilcrow.
Und wenn Sie Tag1, Tag2, Tag3 eindeutig hinzufügen möchten (was sehr verdächtig klingt), lautet die Syntax wie folgt:
oder, wenn Sie möchten, dass die Einschränkung gemäß Ihrem Wunsch benannt wird:
quelle