Avec une table créée avec cette commande :
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Nous pouvons insérer un élément plusieurs fois.
Et en particulier, on peut avoir des colonnes qui répètent la même valeur.
Nous pouvons forcer une colonne à n'avoir que des valeurs uniques en utilisant le UNIQUE
contrainte de clé :
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL UNIQUE
);
Maintenant, si vous essayez d'ajouter le "Flavio" deux fois :
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (20, 'Flavio');
Vous obtiendrez une erreur :
ERROR: duplicate key value violates unique constraint "people_name_key"
DETAIL: Key (name)=(Flavio) already exists.
Une clé primaire est une clé unique qui a une autre propriété :c'est le principal moyen d'identifier une ligne dans le tableau.
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
La clé primaire peut être un e-mail dans une liste d'utilisateurs, par exemple.
La clé primaire peut être un id
unique que nous attribuons automatiquement à chaque enregistrement.
Quelle que soit cette valeur, nous savons que nous pouvons l'utiliser pour référencer une ligne dans le tableau.