Bonjour!
Quand une table comporte 2 clés primaires, il faut coder 2 triggers?
Bonjour!
Quand une table comporte 2 clés primaires, il faut coder 2 triggers?
Salut,Envoyé par anesthezie
Un trigger n'a aucun rapport avec le nombre de clés. Il se déclenche par rapport à un action faite sur la table (INSERT, DELETE, UPDATE) pour pouvoir automatiquement répercuter des informations sur d'autres tables (par exemple).
NB : je ne comprends pas le sens d'avoir deux clés primaires sur une table.
MashiMaro
L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
J'ai une table qui fait la liaison entre une tables "OUTILSINVENTORIES" et une table "FOURNISSEURS". c'est une relations plusieurs à plusieurs.
Donc j'obtient cette table pour la liaison :
Alors comment faire au niveau des triggers pour cette table?
La question n'est pas "comment faire ?" mais "qu'est ce que mon trigger doit faire ?"
Est ce que le trigger est sur la table OUI_Fournir ou est ce qu'il doit mettre à jour ta table ?
Sinon, pour info, tu n'as qu'une seule clé primaire sur ta table qui est le couple (OUI,FOU) qui sont tes deux clés étrangères.
MashiMaro
L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.
Je ne sais pas ce que mon trigger doit faire. En fait, j'ai un trigger pour ma table "OUTILSINVENTORIES" et un pour ma table "FOURNISSEURS". Et je n'ai pas de trigger pour ma table "OUI_Fournir".
Voici le code de mon trigger de la table "OUTILSINVENTORIES" :
Voici le code de mon trigger de la table "FOURNISSEURS" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TRIGGER "TRI_INSERT_OUTILSINVENTORIES" FOR "OUTILSINVENTORIES" ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (new.OUI_NUM IS NULL) THEN new.OUI_NUM = GEN_ID(GEN_OUTILSINVENTORIES,1); END ^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TRIGGER "TRI_INSERT_FOURNISSEURS" FOR "FOURNISSEURS" ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (new.FOU_NUM IS NULL) THEN new.FOU_NUM = GEN_ID(GEN_FOURNISSEURS,1); END ^
Merci de faire attention à poster dans le bon forum
Mon problème est que sous Access, lorsque je suis dans un formulaire pour entrer les caracteristiques d'un outil, je lui indique dans une liste déroulante un fournisseur. Mais si je rentre un autre outil, avec le même fournisseur que l'outil précedemment rentré, il me met ce message d'erreur :
et je ne comprends pas...
En fait dès que jai le fournisseur qui est utilisé une 2ème fois, il me mets ce message. Normalement un outils doit pouvoir avoir zéro à plusieurs fournisseur. Et un fournisseur doit avoir un outil et peux en avoir plusieurs.
Premièrement, tu n'as pas besoin de générateur et de triggers before insert pour ta table OUI_FOURNIR. Tu dois récupérer tes valeurs et faire les ajouts en liens avec ces valeurs. Comme il a été dit précédamment, tu as seulement une clé primaire qui est OUI_NUM et FOU_NUM. Sinon, tu vas avoir des erreurs.
Ok, il n'y a pas de trigger pour cette table OUI_FOURNIR
Mais comment je fais pour faire ca? Je n'en ai pas la moindre idée...Envoyé par Dihap
Ça dépends quand tu fais tes ajouts. Ça devrait être à partir de ton application. J'imagine que tu associes un fournisseur avec un outillage dans ton application. Quand tu sélectionnes tes outils et ton fournisseurs, tu récupères tes numéros et tu fais un ajout.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager