Tous les termes du glossaire

Clé primaire

Qu’est-ce qu’une clé primaire dans PostgreSQL ?

Une clé primaire est une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne. PostgreSQL l’impose avec un index B-tree unique et NOT NULL.

Une contrainte de clé primaire désigne une colonne, ou un groupe de colonnes, comme identifiant des lignes d’une table : ses valeurs doivent être uniques et non nulles. Une table peut avoir au plus une clé primaire.

L’ajout d’une clé primaire crée automatiquement un index B-tree unique sur ses colonnes et les marque NOT NULL. Les clés étrangères d’autres tables y font généralement référence, et de nombreux outils s’attendent à ce que chaque table en ait une. Les choix courants sont une colonne d’identité ou une clé naturelle, comme un code produit.

Exemple

L’exemple crée une table dont la clé est sku, insère une clé en double avec ON CONFLICT DO NOTHING pour qu’elle soit ignorée au lieu d’échouer, puis liste l’index que PostgreSQL a créé pour la clé.

CREATE TABLE products (
  sku text PRIMARY KEY,
  name text NOT NULL
);
INSERT INTO products VALUES ('P-1', 'Lamp');
INSERT INTO products VALUES ('P-1', 'Desk') ON CONFLICT DO NOTHING;

SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'products';

Du SQL simple pour PostgreSQL 16 ou 17 standard, sans aucune extension. Exécutez-le dans une base de données vide que vous pouvez jeter ensuite.

Références

Documentation officielle de PostgreSQL (en anglais).

Termes associés