Mam tabelę w PostgreSQL, w której schemat wygląda następująco:
CREATE TABLE "foo_table" (
"id" serial NOT NULL PRIMARY KEY,
"permalink" varchar(200) NOT NULL,
"text" varchar(512) NOT NULL,
"timestamp" timestamp with time zone NOT NULL
)
Teraz chcę uczynić permalink unikalnym w całej tabeli, zmieniając tabelę. Czy ktoś może mi w tym pomóc?
TIA
sql
postgresql
unique-constraint
Baishampayan Ghose
źródło
źródło
create unique index on foo_table (permalink)
Odpowiedzi:
Rozgryzłem to na podstawie dokumentacji PostgreSQL, dokładna składnia to:
Dzięki Fred .
źródło
Lub niech DB automatycznie przypisze nazwę ograniczenia używając:
źródło
mytable_mycolumn_key
jestem z tego całkiem zadowolony :-)możliwe jest również utworzenie unikalnego ograniczenia obejmującego więcej niż 1 kolumnę:
źródło
ALTER TABLE actions ADD CONSTRAINT actions_unique_constraint UNIQUE (payload::text, name);
lubALTER TABLE actions ADD CONSTRAINT actions_unique_constraint UNIQUE ((payload::text), name);