Interdire la suppression

Répondre
zebulator
le 20/06/2009 à 15:05
zebulator
Bonjour,

J'ai 2 fichiers MySql : 1 parent et 1 enfant.

Je voudrais, dans le cas ou l'utilisateur tente de supprimer un parent qui possède encore des enfants, lui interdire la suppression.

Y a t'il une fonction Php ou MySql pour tester l'existence d'enfant ?

Merci pour vos lumières

Bien cordialement
LupusMic
le 20/06/2009 à 15:36
LupusMic
C'est quoi un fichier MySQL ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
zebulator
le 20/06/2009 à 18:29
zebulator
Nan, d'un enregistrement !!!

J'explique :

j'ai une table "maison" et une table "piece"

dans la table "maison", j'ai un enregistrement "maison à la mer" en relation avec "cuisine" et "salle de bain" de la table "piece" par exemple

je voudrais tester quand un utilisateur essaie de supprimer "maison à la mer", le prog en php l'interdit car il se rend compte qu'il y a 2 pieces en relation et donc interdire cette suppression de "maison à la mer".

Vous voyez ou je veux en venir ?
C'est pour éviter que je me retrouve avec 2 pieces dans la base qui sont en relation avec plus rien...
LA GLOBULE
le 20/06/2009 à 18:43
LA GLOBULE
Ben avant la suppression, fait une sélection pour trouver des enfants.
Si tu en trouves, ne fais pas le delete :/
LupusMic
le 20/06/2009 à 18:55
LupusMic
« Ben c'est une BD MySql et les fichiers des tables MyIsam... »

C'est tellement trivial expliqué comme ça smiley Ne parles pas de fichier quand tu parles d'une problématique liée à une base de données. Les fichiers dont tu parles sont du ressort de l'implémentation. Un moteur SQL peut très bien stocker l'ensemble des tables dans un seul fichier.

Bref, ce que tu veux, c'est l'intégrité référentielle. Ça n'existe pas avec MyISAM (c'est un moteur trop limité fonctionnellement). Il faut que tu passe à InnoDB par exemple. En définissant des clés étrangères, le plus gros du boulot sera fait. Restera plus qu'à mettre en place des triggers et éventuellement utiliser les transactions pour assurer l'atomicité de la suppression.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
zebulator
le 20/06/2009 à 19:07
zebulator
Merci pour l'info, mais je suis étonné smiley
Ce n'est pas la 1ere base de donnée que je pratique et d'autres propose l'integrite referentielle malgré que ce soit en ISAM....
LupusMic
le 21/06/2009 à 06:05
LupusMic
(La Globule) J'ai toujours raison © smiley

(zebulator) Alors attention : ISAM != MyISAM

Je sais que c'est pénible tous ces moteurs de table, mais c'est très intéressant du point de vu du choix. on peut choisir le moteur en fonction de ces contraintes et besoins. Quand à l'intégrité référentielle, jesuis désolé, mais il va falloir passer par, entre autres, InnoDB.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours