Interdire la suppression
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
C'est quoi un fichier MySQL ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Ben c'est une BD MySql et les fichiers des tables MyIsam...
Tu veux interdire la suppression d'une table c'est cela ?
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...
Ben avant la suppression, fait une sélection pour trouver des enfants.
Si tu en trouves, ne fais pas le delete :/
« Ben c'est une BD MySql et les fichiers des tables MyIsam... »
C'est tellement trivial expliqué comme ça
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.
Merci pour l'info, mais je suis étonné
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 a pourtant raison.
(La Globule) J'ai toujours raison ©
(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.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: