Bonjour
Je souhaite créer un trigger dans une table "Y" empêchant l'insertion lorsqu'une valeur est supérieur à la référence d'une table "X"
Problème
Dans une table 'palier', j'ai une colonne 'nb_porte' qui détermine le nombre de pièce accessible depuis ce palier.
Dans une table 'pièce', j'ai une colonne 'porte' qui identifie le local.
Le trigger que je souhaite mettre en place doit empêcher l'insertion d'un numéro de porte (dans la table 'pièce') lorsque ce n° est supérieur au 'nb_porte' autorisé.
Parmi mes multiples tentatives, il y a
Questions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TRIGGER `Controle_porte` BEFORE INSERT ON `room` FOR EACH ROW BEGIN SELECT nb_room FROM palier AS P JOIN room AS Ro ON (Ro.ref=P.idPal); IF new.door > nb_door THEN SET MESSAGE_TEXT = 'Limite porte atteinte'; END IF; END
- Y a-t-il une âme compétente pour m'aiguiller sur cette réalisation ?
- Peut-on placer nos jointures dans un trigger ?
- Puisque le trigger agit à un instant 'T' sur les valeurs en cours, fera-t-il la liaison sur les bonnes valeurs liées d'une autre table ? (dans la table 'palier', j'ai plusieurs 'nb_porte')
NB 1 : je suis conscient qu'il serait plus simple de mettre cette sécurité dans le code .php lié à cette Bdd.
Mais c'est bien un trigger que je souhaite mettre en place.
NB 2 : cela fait 2 jours que je parcours nombre de forum, tuto et autre doc... sans trouver satisfaction :/
Partager