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 31/05/2005, 14h16   #1
Invité régulier
 
Inscription : octobre 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 26
Points : 9
Points : 9
Par défaut contrôle d'intégrité sous InnoDB

Bonjour,

Sous MySql v4.0.18.
J'ai 2 tables A et B. Dans B le champ B50, une clé étrangère qui pointe vers la clé primaire de A (table référentiel) dont le nom est A1 avec par défaut la valeur '999999' sur ce champ.

En clair :
FOREIGN KEY (B50) REFERENCES A (A1) ON UPDATE CASCADE
sachant que `B50` varchar(11) default '999999'

Pourtant quand j'effectue un INSERT dans ma table B sur le champ B50, le contrôle d'intégrité refuse les champs vides et les clés absentes de la table A et donc plantage du programme.

J'attendais que les champs vides et les clés absentes de A soient à '999999'.

Ce fonctionnement est-il normal et le cas échéant comment est-ce que je peux obtenir ce qui m'intéresse ?

Merci pour votre aide

Halina
halina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2005, 13h29   #2
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
A mon avis, ce comportement est normal. Maintenant, pour que '999999' soit acceptable, il faudrait que la table de référence contienne une ligne avec cette clé. c'est le cas ?
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2005, 17h29   #3
Invité régulier
 
Inscription : octobre 2004
Messages : 26
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 26
Points : 9
Points : 9
Par défaut contrôle d'intégrité sous InnoDB

Avant de charger ma base et donc d'effectuer les contrôles d'intégrité,
j'ai effectué une correction des données qui ne correspondait pas au référentiel.
Mais j'aurais préféré que MySql me demande de définir les valeurs manquantes et erronées et la manière de les gérer ...

Merci Adjanakis

Halina
halina 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 22h12.


 
 
 
 
Partenaires

Hébergement Web