Increment automatique du champ ID sur deux tables...? [MySQL - Newbie] - SQL/NoSQL - Programmation
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
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.
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... |
Y'a rien de débile ... 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 ?
Marsh Posté le 05-10-2003 à 16:17:55
Salut
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