Vous n'êtes pas identifié(e).
Pages : 1
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
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
merci pour la solution et ton conseil, j'ai changé le nom 'type' en 'contentType' !
Hors ligne
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
Pages : 1