Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > SQLite
SQLite Forum d'entraide SQLite
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2007, 19h59   #1
Invité régulier
 
Inscription : février 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 7
Points : 5
Points : 5
Par défaut CHECK reconnu mais non pris en charge

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
jjc_Mtl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 22h51   #2
Membre actif
 
Inscription : décembre 2004
Messages : 169
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 169
Points : 175
Points : 175
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+
bigane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h10.


 
 
 
 
Partenaires

Hébergement Web