2010-04-20 3 views
1

I possède un insert à plusieurs rangs qui ressemble à:identification dont la valeur d'un des inserts à plusieurs rangées échoue contrainte de clé étrangère

insert into table VALUES 
(1, 2, 3), 
(4, 5, 6), 
(7, 8, 9); 

Supposons le premier attribut (1, 4, 7) est une clé étrangère à une autre table et supposons que cette table référencée n'a pas la valeur '4'. Un MySQLExeption est jeté avec le code d'erreur 1452.

EXCEPTION: Impossible d'ajouter ou mettre à jour une ligne enfant: une contrainte de clé étrangère échoue (dbName/tableName, CONTRAINTE id FOREIGN KEY (customer_id) RÉFÉRENCES referencedTable (customer_id))

est-il un moyen d'identifier quelle valeur a causé l'erreur? J'aimerais donner mon utilisateur un message d'erreur qui dit quelque chose comme:

Error: '4' does not exist in the referenced table. 

J'utilise le connecteur mysql .NET pour exécuter l'insert.

Action de grâce

Jonathan

Répondre

0

Une option pourrait consister à interroger la première table référencée.

select id from referencedTable where id not in (1, 4, 7) 

Il semble qu'il devrait y avoir un moyen plus propre ...

Questions connexes