web-dev-qa-db-fra.com

Comment puis-je modifier une table PostgreSQL et rendre une colonne unique?

J'ai une table dans PostgreSQL où le schéma ressemble à ceci:

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
)

Maintenant, je veux rendre le permalien unique à travers la table en modifiant la table. Quelqu'un peut-il m'aider avec ça?

TIA

134
Baishampayan Ghose

Je l'ai compris à partir de la documentation PostgreSQL, la syntaxe exacte est la suivante:

ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);

Merci Fred .

225
Baishampayan Ghose

Ou demandez à la base de données d’attribuer automatiquement un nom de contrainte en utilisant:

ALTER TABLE foo ADD UNIQUE (thecolumn);
205
Clint Pachl

il est également possible de créer une contrainte unique de plus d'une colonne:

ALTER TABLE the_table 
    ADD CONSTRAINT constraint_name UNIQUE (column1, column2);
32
Stefan