[MySQL] Ajout automatique

Fermé
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 - 2 juil. 2010 à 10:42
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 2 juil. 2010 à 11:32
Bonjour,

Alors voici le contexte:
J'ai une table 'employee' avec une colonne 'RESOURCE_ID'.
J'ai une autre table 'employee_category' avec le meme type de colonne aussi nommee 'RESOURCE_ID'.

Maintenant, mon probleme:
J'ajoute les donnes dans la table 'employee' et je voudrais savoir comment faire le lien, pour que la donnee enregistree dans la colonne 'RESOURCE_ID' de cette table soit aussi ajoutee AUTOMATIQUEMENT dans la colonne 'RESOURCE_ID' de la table 'employee_category'.

Merci d'avance de votre aide

Cordialement
Matt

8 réponses

Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 10:48
$req1 = "INSERT INTO employee VALUES...";
$req2 = "INSERT INTO employee_category VALUES..."

;-)
0
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
2 juil. 2010 à 10:52
Lol heureusement que j'ai dit "automatiquement" ^^.

En fait si je ne m'abuse ta solution est manuelle (i.e je tape moi meme les 2 ajouts).
Je voudrais faire 1 SEUL ajout dans une table, et que l'ajout dans l'autre table soit automatiquement effectuee par un lien quelconque (que je pense ne pas connaitre, si toutefois il existe lol)
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 10:53
Pourquoi tes insertions tu les faits pas avec php? Tu les fais sous phpMyAdmin?
0
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
2 juil. 2010 à 10:57
Non pas de php, je fais mes appels dans mes JSP ou servlet ca depend, en gros du java quoi ;).

Mais meme sous php tes 2 requetes seraient manuelles et pas effectuees l'une parce que l'autre a ete ajoutee ... (je ne sais pas si je suis clair la ^^)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 11:00
Si... Tu fais ta 1ère requête insert puis un select pour vérifier la présence de l'id(tu peux faire une fonction) puis si ce n'est pas le cas le 2ème insert...

Pour celui qui code il n'y a pas grand chose d'automatique, ce qui compte c'est le client...

Bonne continuation
0
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
2 juil. 2010 à 11:03
Ouais ok je vois, j'avais pense a coder une fonctione du style mais justement je voulais eviter ca, je pensais que c'etait possible par MySQL de faire ca automatiquement.

Genre par exemple les FOREIGN KEY qui te permettent d'etablir une relation entre 2 meme colonne de 2 differentes tables ...

Bon ba pas grave alors j'ai du trop rever ... :(

Merci en tout cas
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 11:06
Ta aussi la possibilité de la procédure stockée sur un AFTER INSERT mais ta table employee_category ne contient que le champs id??
0
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
2 juil. 2010 à 11:16
Tu peux detailler la commande AFTER INSERT stp (concretement ce qu'elle fait).

Et bien evidemment les 2 tables sont bien plus complexes, j'ai simplifier au max pour poser la question.

Mais en gros, le client remplit un formulaire (je remplit donc ma table 'employee'),
ainsi automatiquement (grace a ce lien mysterieux), une nouvelle ligne est ajoutee dans la table 'employee_category' avec la meme valeur dans la colonne RESOURCE_ID que dans l'autre table.

En bref, ca revient a faire INSERT INTO employee (RESOURCE_ID) VALUES (tsi1); qui engendrerait automatiquement un INSERT INTO employee_category (RESOURCE_ID) VALUES (tsi1).

Sinon autre question, je sais qu'est ce qu'est une FOREIGN KEY, mais CONCRETEMENT, qu'est ce qu'elle permet de faire (sans me dire "elle etabli la relation d'une meme dolonne entre 2 tables") ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 11:22
Concrètement une foreign key te permet de mettre à jour et supprimer en cascade. Ici par exemple, si on te supprime une catégorie, on supprime les employés de cette catégorie.

Pour les procédures stockées (ou trigger) je suis pas trop au point mais tu peux regarder par là :

http://dev.mysql.com/doc/refman/5.0/fr/create-trigger.html
0
matthoffman Messages postés 405 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 22 janvier 2013 47
2 juil. 2010 à 11:26
Ok je vais checker ca. Merci de ton aide :).

Au pire j'utiliserais la methode brut de code.
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
2 juil. 2010 à 11:32
OK de rien.
Bon courage...

;-)
0