# Clé primaire

> Colonne ou combinaison de colonnes identifiant de façon unique chaque ligne d'une table, ne pouvant contenir ni doublon ni valeur nulle.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/cle-primaire/

Quand deux articles portent exactement le même titre, ce qui les distingue réellement pour la base de données n'a rien à voir avec leur contenu : c'est un simple entier, invisible dans l'éditeur, qui garantit qu'on parle toujours de la bonne ligne.

## L'identifiant auto-incrémenté, pilier des tables WordPress

Presque toutes les tables du cœur suivent le même schéma : une colonne `ID` (ou `{table}_id`) déclarée `BIGINT UNSIGNED` avec l'attribut `AUTO_INCREMENT`, incrémentée automatiquement à chaque insertion. C'est cette valeur, `wp_posts.ID` par exemple, qui sert de point d'ancrage à toutes les relations : métadonnées, commentaires, taxonomies.

MySQL et MariaDB créent automatiquement un index unique sur cette colonne, ce qui rend les recherches par identifiant systématiquement rapides, quelle que soit la taille de la table.

## Exemple

```
CREATE TABLE wp_avis (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  note TINYINT NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
```

## Bon à savoir

- Une clé primaire peut porter sur plusieurs colonnes à la fois (clé composite), utile par exemple pour une table de liaison qui ne doit jamais contenir deux fois la même paire de valeurs.
- Changer le type d'une colonne servant de clé primaire sur une table volumineuse peut être une opération longue et bloquante : à planifier hors des heures de forte affluence.
- Ne confondez pas cette notion avec un index unique classique : une table ne peut avoir qu'une seule clé primaire, mais autant d'index uniques que nécessaire.
- Sur une table InnoDB, les lignes sont physiquement rangées sur le disque selon l'ordre de cette clé : un identifiant croissant et séquentiel favorise donc de meilleures performances d'écriture qu'une valeur aléatoire.
