PostgreSQLLa base de données la plus sophistiquée au monde.

5.2. Valeurs par défaut

Une valeur par défaut peut être attribuée à une colonne. Quand une nouvelle ligne est créée et qu'aucune valeur n'est indiquée pour certaines de ses colonnes, celles-ci sont remplies avec leurs valeurs par défaut respectives. Une commande de manipulation de données peut aussi demander explicitement que la valeur d'une colonne soit positionnée à la valeur par défaut, sans qu'il lui soit nécessaire de connaître cette valeur (les détails concernant les commandes de manipulation de données sont donnés dans le Chapitre 6, Manipulation de données).

Si aucune valeur par défaut n'est déclarée explicitement, la valeur par défaut est la valeur NULL. Cela a un sens dans la mesure où l'on peut considérer que la valeur NULL représente des données inconnues.

Dans la définition d'une table, les valeurs par défaut sont listées après le type de données de la colonne. Par exemple:

CREATE TABLE produits (
    no_produit integer,
    nom text,
    prix numeric DEFAULT 9.99
);

La valeur par défaut peut être une expression, alors évaluée à l'insertion de cette valeur (pas à la création de la table). Un exemple commun est la colonne de type timestamp dont la valeur par défaut est now(). Elle se voit ainsi attribuée l'heure d'insertion. Un autre exemple est la génération d'un « numéro de série » pour chaque ligne. Dans PostgreSQL™, cela s'obtient habituellement par quelque chose comme

CREATE TABLE produits (
    no_produit integer DEFAULT nextval('produits_no_produit_seq'),
    ...
);

où la fonction nextval() fournit des valeurs successives à partir d'un objet séquence (voir la Section 9.12, « Fonctions de manipulation de séquence »). Cet arrangement est suffisamment commun pour qu'il ait son propre raccourci :

CREATE TABLE produits (
    no_produit SERIAL,
    ...
);

Le raccourci SERIAL est discuté plus tard dans la Section 8.1.4, « Types seriés ».