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

5.2. Valeurs par défaut

Une valeur par défaut est attribuable à une colonne. Quand une nouvelle ligne est créée et qu'aucune valeur n'est spécifiée pour certaines de ses colonnes, celles-ci sont remplies avec leur valeur par défaut respective. Une commande de manipulation de données peut aussi demander explicitement qu'une colonne soit mise à sa valeur par défaut sans avoir à connaître la valeur en question (les détails sur les commandes de manipulation de données sont donnés au 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. Ceci est d'habitude cohérent car on peut considérer que la valeur NULL représente des données inconnues.

Dans une définition de table, les valeurs par défaut sont listées après le type de donnée 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, qui sera évaluée à l'insertion de la valeur par défaut (pas à la création de la table.) Un exemple habituel est qu'une colonne de type timestamp pourrait avoir now() comme valeur par défaut de façon à ce qu'elle obtienne la valeur de l'heure au moment de l'insertion. Un autre exemple habituel est la génération d'un « numéro de série » pour chaque ligne. Dans PostgreSQL™, ceci se fait 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 serial ».