|
Bas de page | |
---|---|
Auteur | Sujet : équivalent standard SQL de LAST_INSERT_ID ? |
welcominh | Bonjour,
Message édité par welcominh le 23-07-2007 à 14:41:59 --------------- Direct-download.com, le moteur de recherche pour Mega |
Publicité | Posté le 23-07-2007 à 14:41:13 |
jpcheck Pioupiou | je propose un simple
|
welcominh | Ce serait ok s'il n'y avait qu'un seul utilisateur à la fois. Mais l'application peut être utilisée par plusieurs personnes en même temps. Donc s'il y a un insert entre mon insertion et la requete qui récupère le max de l'ID, la valeur récupérée sera faussée
Message cité 2 fois Message édité par welcominh le 23-07-2007 à 14:53:24 --------------- Direct-download.com, le moteur de recherche pour Mega |
welcominh | Justement si la requete de récupération de l'ID max s'exécute apres une 2e insertion sur la table, je n'aurai pas le bon ID. Je vois toujours pas comment faire.
Message édité par welcominh le 23-07-2007 à 15:11:19 --------------- Direct-download.com, le moteur de recherche pour Mega |
jpcheck Pioupiou | peut être en faisant deux requetes une au debut, une apres, juste avant ton insertion dans ton autre table... |
welcominh | Je n'ai pas parfaitement saisi ta phrase. Mais si tu parles de récupérer l'id_max avant l'insertion dans la 1ere table, puis de re-récupérer l'id_max sur cette 1ere table afin de comparer si id_max_apres= id_max_avant+1, ca pose la question du nombres de lignes insérées entre ces 2 étapes. Le probleme n'est que reporté. La possibilité d'avoir des insertions mulitples entre ces 2 étapes est d'autant plus faible, mais je n'aime pas l'idée du "ca marche la plupart du temps donc ca va". --------------- Direct-download.com, le moteur de recherche pour Mega |
jpcheck Pioupiou | ben j'ai pas mieux à te proposer pour l'instant
|
mrbebert |
Il y a peut être des fonctions qui permettent de "locker" la table pour éviter toute modification entre l'insertion et la recherche du max |
jeca | Bonjour,
|
Publicité | Posté le 24-07-2007 à 06:00:37 |
welcominh | j'ai vu ca merci. Mais je programme en Java. C'est pour ca que je cherche une méthode en SQL.
--------------- Direct-download.com, le moteur de recherche pour Mega |
jeca | Désolé. (Michel Denizot) |
casimimir | c'est du multiclient ou pas? vu que c'est une base portable je demande |
welcominh | A priori, l'application est partagée et est censée se situer sur le serveur de fichier. Les utilisateurs (employés de la boite) accèdent donc à la même ressource, application et base. Message édité par welcominh le 24-07-2007 à 09:59:15 --------------- Direct-download.com, le moteur de recherche pour Mega |
jeca | Va voir là :
|
welcominh | Le principe du singleton me parait intéressant.
--------------- Direct-download.com, le moteur de recherche pour Mega |
Taz bisounours-codeur | fait un trigger |
casimimir |
|
mv1 |
Message édité par mv1 le 25-07-2007 à 17:49:54 |
Taz bisounours-codeur | wof. sinon tu fais juste un select sur ta sequence. et tu insères en conséquence. |
welcominh | la sequence est elle aussi "partagée" si la base l'est non? donc la question de l'accès multiple reste en suspens. edit: apparemment oui LOCK TABLES est propre a MySQL. A confirmer, mais j'ai cru lire qu'il nétait pas standard sql. Message édité par welcominh le 26-07-2007 à 08:56:39 --------------- Direct-download.com, le moteur de recherche pour Mega |
Taz bisounours-codeur | mais trigger bonsang |
casimimir | pour le trigger il faut voir si il doit le faire dans tous les cas, il devrait mieux définir le contexte, mais sinon une stored procedure et c'est emballé |
welcominh | J'ai besoin des infos récupérées dans les champs de ma fenetre pour insérer dans la 2e table. Je peux faire ca avec un trigger ou une procédure stockée? Message édité par welcominh le 27-07-2007 à 08:55:11 --------------- Direct-download.com, le moteur de recherche pour Mega |
manu@ | un petit déterrage....
|
Publicité | Posté le |