CREATE DOMAIN

Nom

CREATE DOMAIN -- d�finit un nouveau domaine

Synopsis

CREATE DOMAIN nom [AS] type_donnee
    [ DEFAULT expression ]
    [ contrainte [ ... ] ]

o� contrainte est :

[ CONSTRAINT nom_contrainte ]
{ NOT NULL | NULL | CHECK (expression) }

Description

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.

Param�tres

nom

Le nom d'un domaine � cr�er (pouvant �tre qualifi� du nom du sch�ma).

type_donnees

Le type de donn�es sous-jacent du domaine. Il peut contenir des sp�cifications de tableau.

DEFAULT expression

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.

CONSTRAINT nom_contrainte

Un nom optionnel pour une contrainte. Si non sp�cifi�, le syst�me en g�n�re un.

NOT NULL

Les valeurs de ce domaine n'ont pas le droit d'�tre NULL.

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.

CHECK (expression)

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.

Exemples

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
);

Compatibilit�

La commande CREATE DOMAIN est conforme au standard SQL.

Voir aussi

ALTER DOMAIN, DROP DOMAIN