Récupérer lvaleur d'un champ auto incrément après insert [java+mysql] - Java - Programmation
Marsh Posté le 19-12-2002 à 19:20:43
SELECT @@IDENTITY; 
 
fais une recherche là dessus pour plus d'infos 
Marsh Posté le 19-12-2002 à 19:32:07
| Code : 
 | 
 
 
Merci, c'est une truc du genre pcq ça marche pas trop ça 
Marsh Posté le 19-12-2002 à 21:05:03
ça marche pas ...  
 
| Code : 
 | 
 
 
exceptionjava.sql.SQLException: Syntax error or access violation: You have an er 
ror in your SQL syntax near '@IDENTITY as nummatricule' at line 1 
 
ça marche avec un seul  @ mais ça renvoie 0 
Marsh Posté le 19-12-2002 à 23:01:05
c'est le nom du champ auto incrémenté ça , sinon  
| Code : 
 | 
 
ne va pas plus, il y a une erreur dans la requête 
Marsh Posté le 19-12-2002 à 23:13:14
essaille avec un ";" à la fin 
sinon essaille ton 
SELECT @@IDENTITY as nummatricule 
en mettant ' ' pour 'nummatricule' 
 
OU SINON CHERCHE SUR LE NET CA SE TROUVE TRES FACILEMENT !
Marsh Posté le 20-12-2002 à 00:13:19
  j'ai comme un GROS doute qu'il y ait un truc pareil dans mysql
 j'ai comme un GROS doute qu'il y ait un truc pareil dans mysql 
 
et euh avant de faire ça, essaie dejà de faire ton insert correctement, mais bon... 
 
avec jdbc3, y'a une fonction pour recuperer exactement ça... et les derniers drivers jdbc de mysql l'implementent   
 
Marsh Posté le 20-12-2002 à 00:26:56
mon insert marche  . Enfin c'est peut être dégeux
 . Enfin c'est peut être dégeux  . Tant pis pour la valeur du champ.
. Tant pis pour la valeur du champ. 
Marsh Posté le 23-12-2002 à 11:23:41
bon concrètement, il faut faire quoi? Ca fonctionne ce select @@IDENTITY ou pas?
Marsh Posté le 23-12-2002 à 13:55:49
le select @@identity fonctionne sur MySQL 3.23.xx (je m'en sers sur un projet). 
 
Je sais pas comment ça va avec Java mais peux-tu essayer sans ton "as matricule" et essayer de récupérer la valeur sans cela? (et mettre un ; à la fin comme l'a dit Rob Roy, ça peut pas faire de mal  )
)
Marsh Posté le 23-12-2002 à 13:57:03
| drasche a écrit : le select @@identity fonctionne sur MySQL 3.23.xx (je m'en sers sur un projet).  | 
 
 
en fait je fais mon insert et puis avec la meme connection juste après je fais 
 
| Citation :   | 
 
 
et comme je ne partage pas cette connexion je n'ai pas  besoin de locker la table 
 
Marsh Posté le 23-12-2002 à 14:17:26
bon ce code fonctionne très bien sur ma base MySQL sur mon laptopt. Par contre le meme code sous linux avec le meme mysql ca ne fait rien (ca n'insère meme pas en base). Je crois que j'ai raté un épisode 
Marsh Posté le 23-12-2002 à 14:17:50
| DarkLord a écrit : bon ce code fonctionne très bien sur ma base MySQL sur mon laptopt. Par contre le meme code sous linux avec la meme version de mysql mais sous linux, ca ne fait rien (ca n'insère meme pas en base). Je crois que j'ai raté un épisode  | 
Marsh Posté le 23-12-2002 à 14:38:12
synchronized { 
   ajout ligne 
   getLastId (==> SELECT MAX(id) FROM) 
} 
 
 
Connaissais pas le coup du @@IDENTITY 
Ca marche vraiment alors ou pas???? 
 
 
 
 
 
 
 
Marsh Posté le 23-12-2002 à 15:20:52
| Dephi a écrit : synchronized {  | 
 
 
ouais enfin voir ma query plus haut ... Sous mysql 3.5 ca fonctionne
Marsh Posté le 23-12-2002 à 15:29:59
pas bête du tout le coup du synchronized  . Enfin mon projet est rendu et ils ont rien regardé
. Enfin mon projet est rendu et ils ont rien regardé  . Enfin, à l'avenir faute de miux, je prendrai la méthode synchronized. Sous php/mysql, il y a une fonction qui renvoie l'id du dernier truc inséré.
. Enfin, à l'avenir faute de miux, je prendrai la méthode synchronized. Sous php/mysql, il y a une fonction qui renvoie l'id du dernier truc inséré.
Marsh Posté le 23-12-2002 à 15:34:46
| belgique a écrit : pas bête du tout le coup du synchronized  | 
 
 
si tu partages pas la connexion entre plusieurs thread c'est pas nécessaire, la fuction last_insert_id fait un lock automatiquement sur la base...
Marsh Posté le 19-12-2002 à 19:19:50
Voilsà, j'ai une colonne id par exemple qui est de type auto incrément et j'ajoute une ligne à cette table, puis je connaitre directement la valeur de l'id du champ ajouté.
---------------
Belgian connection