|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2007 Messages : 7 ![]() |
Bonjour,
j'ai une table définie comme suit: CREATE TABLE LesMRC ( codeMRC CHAR(3) CONSTRAINT codeMRC PRIMARY KEY CHECK (length(codeMRC) = 3), nomMRC VARCHAR(50) ); SQLite a gobé ça tout rond mais lorsque j'insère une ligne: INSERT INTO LesMRC VALUES('6632', 'CMM'); aucune erreur n'est envoyée; sqlite> select * from lesMRC; codeMRC nomMRC -------------------- -------------------- 663 CMM 6632 CMM sqlite> pourtant, dans la doc., je ne vois pas de restriction dans l'implantation du CHECK de SQLite. De plus, le champ codeMRC limité à 3 caractères en accèpte volontier 4 ('6632'); jjc, Mtl |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : décembre 2004 Messages : 169 ![]() |
Bonjour,
effectivement la syntaxe est approuvée par SQLite... mais pas du tout utilisée par le moteur actuel. Il faut se débrouiller seul pour les checks. Par exemple tu peux obtenir de bons résultats avec des triggers. Il y a un site qui va t'aider dans leur création : SQLite Foreign Key Trigger Generator Pour les tests de taille des champs (ou de contenu) c'est la même chose, après un insert ou un update tu teste la colonne et tu renvois une erreur lorsque c'est trop grand. a+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com