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
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 . 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, à 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 . 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é. |
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