PROB requete effacement données

Fermé
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 1 janv. 2012 à 20:28
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 4 janv. 2012 à 13:03
Bonjour,

J'ai conçu un mini site e-commerce.
Je dois pouvoir effacer un client mais le num_client est aussi dans la table commande.

Quand j'utilise cette requête :
$requete = "DELETE FROM client WHERE num_client ='$num_client'";

J'ai le droit à ce beau message d'erreur :
Une erreur est survenue : Cannot delete or update a parent row: a foreign key constraint fails ('sitetest'.'commande', CONSTRAINT 'commande_ibfk_1' FOREIGN KEY ('num_client') REFERENCES 'client' ('num_client'))

Pourriez-vous m'aider en me donnant et en m'expliquant la requête qui peut passer à travers ce problème ?

Merci et bonne année 2012 à tous et à toutes.

Kata2012.

1 réponse

l.dellacherie Messages postés 15 Date d'inscription mercredi 14 décembre 2011 Statut Membre Dernière intervention 3 janvier 2012 2
3 janv. 2012 à 21:56
Double requete ou Contrainte en cascade.

Double requete : delete from commande where num_client = @num_client
delete from client where num_client = @num_client

La contrainte en cascade est une propriété de ta foreign key sur la table commande. Lorsque tu fais modify tu peux accéder à une propriété "Delete rule" où tu peux mettre "cascade" au lieu de "no action".
Celà a pour effet de supprimer toute les lignes dans les deux tables, lorsque tu supprime le parent c'est à dire "client".
1
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015
4 janv. 2012 à 13:03
merci! je vais tester cela! =)
0