PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 19/06/2011 20:27:33

K-LiBR3
Membre

Domaine de definition pour données de type text

Bonjour,


J'aimerai savoir comment donnée un domaine de définition à une de mes données de type text, de ce genre :

CREATE TABLE thirdLevel
(
    id bigserial primary key,
    name varchar(255) NOT NULL,
    type varchar(255) NOT NULL DEFAULT 'info' CHECK type = 'info' OR type = 'exemple' OR type = 'lien'
);

merci d'avance.

Dernière modification par K-LiBR3 (19/06/2011 20:28:36)

Hors ligne

#2 19/06/2011 20:33:45

SQLpro
Membre

Re : Domaine de definition pour données de type text

Il faut utiliser une contrainte CHECK !

CREATE TABLE thirdLevel
(
    id bigserial primary key,
    name varchar(255) NOT NULL,
    type varchar(255) NOT NULL DEFAULT 'info' CHECK (type IN ('info', 'exemple', type = 'lien'))
);

A lire sur les contraintes CHECK : http://sqlpro.developpez.com/cours/sqla … ie2#L7.1.6
Et aussi : http://sqlpro.developpez.com/contrainte … es_SQL.pdf § 4

Au passage nommer une colonne type et même name est particulièrement mauvais... type étant un mot clef de SQL, vous allez au devant de problèmes...

A +

Dernière modification par SQLpro (19/06/2011 20:35:07)


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

#3 19/06/2011 21:32:55

K-LiBR3
Membre

Re : Domaine de definition pour données de type text

merci pour la solution et ton conseil, j'ai changé le nom 'type' en 'contentType'  !

Hors ligne

#4 20/06/2011 09:06:20

Marc Cousin
Membre

Re : Domaine de definition pour données de type text

Au passage, évitez la casse dans les noms des colonnes. Cela vous évitera quelques soucis plus tard.

Dernière modification par Marc Cousin (20/06/2011 09:06:47)


Marc.

Hors ligne

Pied de page des forums