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 |