[MySQL - Newbie]Increment automatique du champ ID sur deux tables...?

Increment automatique du champ ID sur deux tables...? [MySQL - Newbie] - SQL/NoSQL - Programmation

Marsh Posté le 05-10-2003 à 16:17:55    

Salut  :jap:  
 
Est-il possible lors d'un enregistrement sur une table A que le champ "id" de la table A et le champ "id" d'une autre table B soient incrémentés à la fois, automatiquement ?
 
Ceci afin de synchroniser les tables...
 
Par exemple:
 
J'insère une nouvel enregistrement "Paul" dans la table A...
et je veux qu'automatiquement le champ "id" de la table B soit incrémenté...
 
Table A:
 
id    Nom
1     Marc
2     Julien
3     Paul
 
Table B:
 
id    Charactère
1     Gentil
2     Coléreux
3     (vide) <---- Est-ce possible ?
 
 
Pour info, j'utilise le PHP pour programmer.
 
Merci  [:bien]

Reply

Marsh Posté le 05-10-2003 à 16:17:55   

Reply

Marsh Posté le 05-10-2003 à 16:23:01    

Il ne peut pas y avoir d'insertion automatique dans une table.
Si tu veux qu'il y ait aussi un champ avec l'id 3 dans ta table B, tu dois faire un INSERT.
 
Si tu veux juste que les champs correspondants aient le même id, tu peux ne pas utiliser l'auto-incrémentation et forcer l'id quand tu insères dans la table B.
Un truc dans le ganre :
INSERT into A VALUES(NULL, ...)
INSERT into B VALUES(LAST_INSERT_ID(), ...)
Ainsi, l'insertion dans B se fera avec l'id utilisé dans A

Reply

Marsh Posté le 05-10-2003 à 16:32:11    

ok merci :jap: je verrai ça plus tard...
 
[:bien]

Reply

Marsh Posté le 05-10-2003 à 19:04:22    

La solution de mrbébert marche tres bien, a ceci pres que si tu fais ca dans toute une base énorme, tu vas avoir une base vit énorme et remplie de vide...
 
Dans ton exemple, d'ailleurs, c'est débile.
 
Le caractère, pour qu'il soit dans une table séparée, doit avoir, quelque part, un nombre limité d'éléments, dénombrable quoi.
 
Si tu enregistre le n° de "Timide" de la table caractère dans la table personne, direct, tu fais qu'un seul enregistrement et tu gagnes de la place.
 
Quand je lis ton post en fait, je pense plus a un probleme de design qu'autre chose ;)
 
Si le caractère est dénombrable, alors tu fais ce que je viens de dire, sinon, il est indénombrable, et sera en une relation 1--14, donc caractère devrait etre un champ de la table personne, tout simplement.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 05-10-2003 à 19:38:05    

tetedeiench a écrit :

La solution de mrbébert marche tres bien, a ceci pres que si tu fais ca dans toute une base énorme, tu vas avoir une base vit énorme et remplie de vide...
 
Dans ton exemple, d'ailleurs, c'est débile.
 
Le caractère, pour qu'il soit dans une table séparée, doit avoir, quelque part, un nombre limité d'éléments, dénombrable quoi.
 
Si tu enregistre le n° de "Timide" de la table caractère dans la table personne, direct, tu fais qu'un seul enregistrement et tu gagnes de la place.
 
Quand je lis ton post en fait, je pense plus a un probleme de design qu'autre chose ;)
 
Si le caractère est dénombrable, alors tu fais ce que je viens de dire, sinon, il est indénombrable, et sera en une relation 1--14, donc caractère devrait etre un champ de la table personne, tout simplement.


 
Y'a rien de débile  :o ... je suis juste newbie
 
Sinon ouais le nombre de charactères est dénombrable.
Par contre j'ai pas pigé ça:
 

Citation :

Si tu enregistre le n° de "Timide" de la table caractère dans la table personne, direct, tu fais qu'un seul enregistrement et tu gagnes de la place.


 
Tu peux réexpliquer ?  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed