problème insoluble avec CHECK
bonjour !
G un problème que je ne parviens vraiment pas à résoudre et ce n'est pas faute d'avoir esseyer.
J'ai tenter durant toute l'après-midi de me battre avec le check mais je dois bel et bien m'avouer vaincu. Je voulais simplement mettre une contrainte sur une table (à savoir : faire en sorte qu'une adresse email soit bien de la forme bidul@machin.com). Après bien 2 heures je me suis décidé à esseyer avec un exmeple pris sur le web.
J'ai donc simplement esseyé avec cette exemple :
Code:
1 2 3 4 5 6 7 8 9
|
CREATE TABLE voiture
(VTR_ID INTEGER NOT NULL PRIMARY KEY,
VTR_MARQUE CHAR(32) NOT NULL,
VTR_MODELE VARCHAR(16),
VTR_IMMATRICULATION CHAR(10) NOT NULL UNIQUE,
VTR_COULEUR CHAR(16),
constraint cool CHECK (VTR_COULEUR IN ('BLANC', 'NOIR', 'ROUGE', 'VERT', 'BLEU')))
TYPE=INNODB; |
Ensuite j'esseye d'ajouter un ligne à la table et là il se passe ce qui se passait avec l'adresse email : il l'ajoute même si elle ne correspond pas au format.
Code:
1 2 3 4 5
|
mysql> INSERT INTO voiture VALUES (1, 'DUPONT', 'test','test','test');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO voiture VALUES (2, 'DUPONT2', 'test2','test2','BLEU');
Query OK, 1 row affected (0.00 sec) |
Et là je dois avouer que je n'y comprend vraiment plus rien.
Cet aprem j'ai tenté la manip sur un serveur mysql 3.23 et là je viens de le faire chez moi sur un serveur 4.0.15 et C toujours l e même résultat.
Celui qui me sort de la aura ma reconnaissance éternelle.
merci d'avance
PS: comment pourrais je être sur que le support innodb est actif ? Et s'ikl ne l'est pas comment faire pour l'activer ?