Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
CREATE DOMAIN nom [AS] type_donnee [ DEFAULT expression ] [ contrainte [ ... ] ] où contrainte est : [ CONSTRAINT nom_contrainte ] { NOT NULL | NULL | CHECK (expression) }
CREATE DOMAIN crée un nouveau domaine de données. L'utilisateur définissant un domaine devient son propriétaire.
Si un nom de schéma est donné (par exemple, CREATE DOMAIN monschema.mondomaine ...), alors le domaine est créé dans le schéma spécifié. Sinon, il est créé dans le schéma actuel. Le nom du domaine doit être unique parmi les types et domaines existant dans son schéma.
Les domaines sont utiles pour faire une abstraction des champs communs entre deux tables en un seul emplacement. Par exemple, une colonne d'adresse de courrier électronique utilisé dans plusieurs tables, toutes avec les mêmes propriétés. Définissez un domaine et utilisez-le plutôt que de configurer les contraintes de chaque table individuellement.
Le nom d'un domaine à créer (pouvant être qualifié du nom du schéma).
Le type de données sous-jacent du domaine. Il peut contenir des spécifications de tableau.
La clause DEFAULT définit une valeur par défaut pour les colonnes d'un type de données domaine. La valeur correspond à toute expression de variable (mais les sous-requêtes ne sont pas autorisées). Le type de données de l'expression par défaut doit correspondre au type de données du domaine. Si la valeur par défaut n'est pas indiquée, alors il s'agit de la valeur NULL.
L'expression par défaut sera utilisée dans toute opération d'insertion qui ne spécifierait pas de valeur pour cette colonne. Si une valeur par défaut est définie pour une colonne particulière, elle surcharge toute valeur par défaut associée avec le domaine. En retour, la valeur par défaut surcharge tout valeur par défaut associée avec le type de données sous-jacent.
Un nom optionnel pour une contrainte. Si non spécifié, le système en génère un.
Les valeurs de ce domaine n'ont pas le droit d'être NULL.
Les valeurs de ce domaine peuvent être NULL. C'est la valeur par défaut.
Cette clause a seulement pour but la compatibilité avec les bases de données SQL non standard. Son utilisation n'est pas encouragée dans les nouvelles applications.
Les clauses CHECK spécifient des contraintes d'intégrité ou des tests que les valeurs du domaine doivent satisfaire. Chaque contrainte doit être une expression produisant un résultat booléen. Elle devrait utiliser le nom VALUE pour se référer à la valeur en cours de tests.
Actuellement, les expressions CHECK ne peuvent ni contenir de sous-requêtes ni se référer à des variables autres que VALUE.
Cet exemple crée le type de données code_postal_us, puis l'utilise dans la définition d'une table. Un test d'expression rationnelle est utilisé pour vérifier que la valeur ressemble à un code postal US valide.
CREATE DOMAIN code_postal_us AS TEXT CHECK( VALUE ~ '^\\d{5}$' OR VALUE ~ '^\\d{5}-\\d{4}$' ); CREATE TABLE courrier_us ( id_adresse SERIAL NOT NULL PRIMARY KEY , rue1 TEXT NOT NULL , rue2 TEXT , rue3 TEXT , ville TEXT NOT NULL , code_postal code_postal_us NOT NULL );
Précédent | Sommaire | Suivant |
CREATE DATABASE | Niveau supérieur | CREATE FUNCTION |