Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 02/07/2007, 15h21   #1
Membre à l'essai
 
Inscription : juin 2007
Messages : 104
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 104
Points : 21
Points : 21
Envoyer un message via ICQ à DJERDJAR YACINE Envoyer un message via MSN à DJERDJAR YACINE
Par défaut la condition check ne fonction pas

bonjour

j'ai une table produit que j'ai la creer comme ça:

Code :
1
2
3
4
 CREATE TABLE produit(codpro integer,nompro char(10),datpro date,datex date,
PRIMARY KEY(codpro),
UNIQUE(nompro) ,
constraint controle_date CHECK (datpro<datex))
RQ:
datpro==>date de production
datex==>date d'expiration

le probleme c'est que j'insert la datpro supperieur au datex elle accepte cette inserssion,donc la fonction ne fonction pas
voila ma requete:
Code :
1
2
 INSERT INTO produit VALUES(10,'sucre','2007-07-01','2007-07-20')==>accepte
INSERT INTO produit VALUES(10,'sucre','2007-07-01','2006-05-23')==>accepte
je vous remerci d'avance
DJERDJAR YACINE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 16h14   #2
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
La contrainte est bonne et sous Oracle 10gR1 ça donne bien le résultat attendu :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
10g CYRIL> CREATE TABLE produit(codpro integer,nompro char(10),datpro date,datex date,
  2  PRIMARY KEY(codpro),
  3  UNIQUE(nompro) ,
  4  constraint controle_date CHECK (datpro<datex));
 
TABLE créée.
 
10g CYRIL> INSERT INTO produit VALUES( 10,'sucre', to_date('2007-07-01', 'YYYY-MM-DD'), to_date('200
7-07-20', 'YYYY-MM-DD') );
 
1 ligne créée.
 
10g CYRIL> INSERT INTO produit VALUES( 10,'sucre', to_date('2007-07-01', 'YYYY-MM-DD'), to_date('200
6-05-23', 'YYYY-MM-DD') );
INSERT INTO produit VALUES( 10,'sucre', to_date('2007-07-01', 'YYYY-MM-DD'), to_date('2006-05-23', '
*
ERREUR à la ligne 1 :
ORA-02290: violation de contraintes (CYRIL.CONTROLE_DATE) de vérification
A mon avis, le problème vient de la gestion des dates selon votre SGBD.
Creusez cette piste.
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 16h39   #3
Membre à l'essai
 
Inscription : juin 2007
Messages : 104
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 104
Points : 21
Points : 21
Envoyer un message via ICQ à DJERDJAR YACINE Envoyer un message via MSN à DJERDJAR YACINE
bonjour

merci pour votre reponse mais malgrer tous elle ne fonction pas
parceque j'ai fait le check sur l'age>=20 ans elle l'accepte moin de 20 ans
je sais pas comment ça marche

EXP:voila ma requete
constraint control check (age>=20) elle accepte moin de 20 ans

je suis sous mysql

pourier vous m'ader SVP
DJERDJAR YACINE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 16h44   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 450
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 450
Points : 7 559
Points : 7 559
Il faudrait savoir quelle version de MySQL, avec quel moteur de données.

Il me semble me souvenir que dans certaines versions la déclaration des contraintes est uniquement décorative...
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 17h56   #5
Membre à l'essai
 
Inscription : juin 2007
Messages : 104
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 104
Points : 21
Points : 21
Envoyer un message via ICQ à DJERDJAR YACINE Envoyer un message via MSN à DJERDJAR YACINE
bonjour

je travaille sous mysql 5.1

si la déclaration est décorative comment faire pour maitre les contraintes d'intégrité

je vous remerci
DJERDJAR YACINE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h02.


 
 
 
 
Partenaires

Hébergement Web