J'ai une application dans php & mysql où les utilisateurs écrit et lit à partir d'une table particulière. Un des modes d'écriture est dans un lot, ne faisant qu'une seule requête avec les multiples valeurs. La table a un identifiant qui s'incrémente automatiquement. L'idée est que pour chaque ligne de la table qui est insérée, une copie est insérée dans une table séparée, en tant que journal d'historique, y compris l'ID qui a été généré.Ids de mysql insert massif de sources simultanées
Le problème est que plusieurs utilisateurs peuvent le faire en même temps, et je dois être sûr que l'ID chargé est le bon.
Puis-je être sûr que si je le fais par exemple:
INSERT INTO table1 VALUES ('','test1'),('','test2')
que les ids générés sont séquentiels?
Comment puis-je obtenir les ID qui viennent d'être chargés, et être sûr que ce sont ceux qui viennent d'être chargés?
J'ai pensé à la TABLE DE VERROUILLAGE, mais les utilisateurs ne devraient pas le remarquer.
espoir que je me suis fait clair ...
Juste ce champ ID est unique, tous les autres peuvent être répétés. Et je ne supprimerai jamais aucune valeur de celui-ci. C'est juste pour stocker des choses et prendre quelques rapports à partir de là. – nightshadex101
OK - mais c'est toujours une exigence qui n'a généralement pas de sens. Une des grandes caractéristiques d'un SGBDR est que vous n'avez pas à vous préoccuper de choses comme ça. Y a-t-il une raison particulière pour laquelle vous voulez qu'ils soient séquentiels? – TML
Je veux juste être en mesure de faire un > INSERT INTO table1_hist VALUES ('', 'test1'), ('', 'test2') mais avec des centaines de valeurs à la fois. Je peux le faire un par un, mais je ne pense pas que la performance sera la même. Et cela sera fait par des centaines d'utilisateurs en même temps, je dois être sûr que si je charge 5 lignes, j'obtiendrai ces 5 identifiants (quels qu'ils soient) et je pourrai les charger dans l'historique table. –
nightshadex101