Je travaille actuellement sur un grand projet web utilisant ASP et MySQL. Lors de l'insertion dans plusieurs tables, j'ai utilisé last_update_ID()
, mais après quelques recherches, j'ai trouvé que cette instruction SQL n'est pas sûre.Existe-t-il une alternative à "last_update_ID()" pour mySQL?
Donc. le problème: J'utilise deux ordinateurs différents, avec des connexions Internet différentes.
Les deux ordinateurs sont connectés au système que je suis en train de construire. J'ai fait une page qui imprime le connection_id(), et last_update_id.
Si je mets à jour une table avec l'un des ordinateurs, l'autre reçoit également last_update_ID. Les deux ordinateurs ont le même ID de connexion.
Que puis-je faire pour contourner ce problème?
Je ne veux pas (si ce n'est pas nécessaire) faire une instruction select après le premier INSERT; pour rechercher la ligne que j'ai insérée, pour obtenir l'ID correct de cette ligne.
Ce n'est pas mon serveur que j'utilise donc je ne peux pas faire de grands changements dans la base de données.
Je suppose que ce problème se produit parce que les pages Web utilisent le même mot de passe & loginName pour se connecter à la base de données, est-ce vrai?
Existe-t-il une autre alternative pour obtenir le dernier ID de mise à jour? cela est totalement sûr. Je ferme chaque connexion à la fin de la page ASP. mais cela ne change pas le connection_ID.
L'ID de connexion est le pour quelques minutes même si j'ouvre différentes pages web sur le serveur.
En fait, je pense toujours avoir un problème .. J'utilise 2 ordinateurs différents et 2 connexions Internet différentes, et je suis toujours capable de récupérer le last_update_ID() de l'autre ordinateur que je mets à jour ou insère dans la table. – Matte
Ensuite, la réponse de grahamparks s'applique très probablement à votre cas. Vous utilisez des connexions persistantes/pooling de connexion. Cependant, ils ne sont utilisés que de bout en bout. Vous voudrez peut-être lire sur le sujet. – ontrack