Aller au contenu

inser sur deux table avec un champ en commun auto_incrémenter


Sujets conseillés

Posté

bonjour

j'ai un problème avec sql

j'aimerais en une requête insérer mes donnes qui proviennent d'un formulaire dans deux tables qu'ils ont en commun le champ id en auto_incrément

exemple table:a champ:id,1,2,3 et table:b champ:id,4,5,6

pour une sélection sa aurais était mais la c'est diffèrent

  • 2 semaines plus tard...
Guest Bobez
Posté

Je ne comprend pas trop ce que tu cherches à faire... Il faut que tes deux enregistrements aient le même id ?

Tu ne peux pas t'en sortir avec une seule table ?

Posté

nan c est pas possible pour plusieurs raison deja si je les réunis sa risque de faire trop de champ donc brouillon en plus dans l'une de mes table j' utilise un timestamp en attributs ON UPDATE CURRENT_TIMESTAMP (sa enregistre la date-heure-min-sesonde lors d un ajout ou d'une entre ) pour faire certaine vérification donc la aussi sa posera un problème si je réunis

je pense pas que sa soit possible a faire en un requet :nonono:

Posté

Bonjour,

nan c est pas possible pour plusieurs raison deja si je les réunis sa risque de faire trop de champ donc brouillon

Bip, mauvaise réponse. Ce n'est pas une bonne raison pour limiter le nombre de champs d'une table.

en plus dans l'une de mes table j' utilise un timestamp en attributs ON UPDATE CURRENT_TIMESTAMP (sa enregistre la date-heure-min-sesonde lors d un ajout ou d'une entre ) pour faire certaine vérification donc la aussi sa posera un problème si je réunis

je pense pas que sa soit possible a faire en un requet :nonono:

Globalement, si tu as besoin de ce genre de bidouille, il est probable que tu aies fait une erreur de conception quelque part.

Sinon si ça peut t'aider, MySQL permet de changer le pas de l'incrémentation et le numéro de départ. Ce qui pourrait donner dans ta table 1 les id 1,3,5,7... et dans la table 2 les id 2,4,6,8... en fixant les respectivement un nombre minimal de 1 et 2 sur chaque table et un pas d'incrémentation de 2.

Posté
Bip, mauvaise réponse. Ce n'est pas une bonne raison pour limiter le nombre de champs d'une table.

:) c'est vrai mais apres comment faire si tu retrouve avec 40 champs dans la meme table enfin c est un exemple :sick:

et puis j aime bien geré mes champs en fonction de leurs utilités sa me permet de mieu se reperé et de pas tout melangé et d ailleur pour mes verification j'en suis forcé ;)

Globalement, si tu as besoin de ce genre de bidouille, il est probable que tu aies fait une erreur de conception quelque part.

Sinon si ça peut t'aider, MySQL permet de changer le pas de l'incrémentation et le numéro de départ. Ce qui pourrait donner dans ta table 1 les id 1,3,5,7... et dans la table 2 les id 2,4,6,8... en fixant les respectivement un nombre minimal de 1 et 2 sur chaque table et un pas d'incrémentation de 2.

peut etre que j'ai fait une erreur de conception mais a mon niveau j' apprend et approfondit mes connaissance ;)

ce que tu propose c'est de faire un jeux avec les incrementation moi mon but c'est que l id 1 s ajoute dans la table1 et table2 en même temps sans qu'un jour je trouve une erreur dans mon incrementation exemple table1 reçoit id 4 et table2 id 5

Posté

En gros, le plus simple, c'est dans la deuxième table de ne pas utiliser l'auto-incrément, mais d'insérer directement la valeur de l'id que l'on désire

En gros, tu fais ta première requête d'insertion dans la première table, tu récupère l'id qui à été créé avec la commande

$id = mysql_insert_id();

Ensuite tu fais ta deuxième requête d'insertion avec l'id trouvé.

Mais, bon, quelque soit la taille d'une taille, je n'ai jamais coupé l'une d'elle en deux, c'est trop "chiant" pour gérer les suppressions / mises a jour

Posté

oui mais sa revient au meme au final j ai deux requêtes :unsure:

Mais, bon, quelque soit la taille d'une taille, je n'ai jamais coupé l'une d'elle en deux, c'est trop "chiant" pour gérer les suppressions / mises a jour

je sait pas peut etre que j'utilise pas la bonne méthode mais je n'est jamais rencontrer de probleme ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...