|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
Bonjour à tous,
je voudrais insérer automatiquement une valeur auto_incremente dans une table qui est vide au départ et qui sera déclencheé après insertion d'une valeur dans une autre colonne. ma tables est : Code :
mon trigger est : Code :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIGGER INCR_CONTROLE BEFORE INSERT ON CONTROLES FOR EACH ROW BEGIN SE' at line 1 merci de votre aide |
||||
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
je débute en mysql ....je sais pas si c'est faisable ???
|
|
|
00
|
|
|
#3 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
L'auto-incrément sur controle_id ne te suffit pas ???
|
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
justement je cherche à faire le lien avec une autre table (ma table de base) qui a refrence_id comme clé primaire !! je sais pas si tu peux me proposer une modification sur la structure de ma BD je suis preneur !
ma table de est Code :
|
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Je sais pas si ta syntaxe de trigger est bonne.
Par contre je ne saisie pas trop ce que tu souhaites faire. Peux-tu être plus précis. Au passage je te donne une fonction qui permet de récupérer le dernier id. LAST_INSERT_ID()
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
Merci pour la réponse, je m’explique donc : j’ai la table mère « ARTICLE_REFERENCES » qui sera renseignée par une autre table « CONTROLES »
ARTICLE_REFERENCES a pour colonnes : reference_id INTEGER AUTO_INCREMENT reference_nom VARCHAR(20) indice VARCHAR(20) lot_num VARCHAR(20) lot_quantite INTEGER CONSTRAINT ARTICLE_REFERENCES_reference_id_pk PRIMARY KEY (reference_id) CONTROLES a pour colonnes : controle_id INTEGER AUTO_INCREMENT reference_id INTEGER controleur_nom VARCHAR(20) quantite_controlee INTEGER date_controle VARCHAR(20) observation NVARCHAR(255) CONSTRAINT CONTROLES_controle_id_pk PRIMARY KEY (controle_id) CONSTRAINT CONTROLES_reference_id_fk FOREIGN KEY (reference_id) REFERENCES ARTICLE_REFERENCES (reference_id) Mon problème est comment relié les deux tables ? à chaque insertion à la base y aura une ligne supplémentaire dans les 2 tables, c’est pour cela que j’ai pensé à incrémenté le champs reference_id ? |
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Ok, je crois comprendre. Si je résume bien.
Si tu créés un enregistrement dans ARTICLE_REFERENCES Il y a automatique un enregistrement dans CONTROLES . Mais pour les liers il te faut passer l'identifiant unique de ARTICLE_REFERENCES. Ok, dans ce cas là tu n'as pas besoin de Trigger mais une procédure stocké. qui va contenir ceci. Code :
Toute les valeur de type p_xxxxx ce sont les variables que tu dois faire passer en paramètre de ta procédure stocké. Ainsi en une seul requête tu auras deux enregistrements.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
et si je mets dans la table CONTROLES le champs reference_id comme clé primaire (auto_increment) de cette même table et par la même occasion elle sera la clé étrangère de la table ARTICLE_REFERENCES ? et j'enlève du coup le champ controle_id ? qu'est ce que vous pensez ?
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Oui, mais pas en auto incrément parce qu'il suffit qu'il y a un os pour que les id ne soit pas synchro ! Je pense que tu devrais quand même passer le dernier ID de la table ARTICLE_REFERENCE. C'est plus propre et moin dangeureux.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 63 ![]() |
je vois pas comment utiliser la procédure stockée j'ai jamais créer une ?? vous pouvez pas me donner le début ?
merci bcp |
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Code :
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com