dai esses dados são salvos na tabela que gera o Id, eu queria saber se existe alguma maneira de eu pegar essa chave (o campo id) se fazer uma nova consulta no banco???
SE não me engano é select last_insert_id() from table
essa condição funciona contanto que sua tabela tenha um acamo do tipo INT e AUTO-INCREMENT
[/]'s
analyser
Voce pode dar um select max(id) tabela;
ai vc vai ter o ultimo e é só somar mais um.
Abraços
Giulliano
não é boa prática afinal a maior chave nem sempre é o último registro…
não nesse caso…
mas se vc estivesse usando o autoincrement do hibernate do tipo HI-LO que gera uma chave alta e uma baixa…o maior não seria o último…
C
cabrinha
Mas minha pergunta ao uso do
last_insert_id()
é essa:
O meu banco é uzado por vááááárias pesoas, cadastrando praticamente ao mesmo tempo, tipo se eu fizer um select usando last_insert_id(), naum corre o risco de outrem ja ter inserido algo na tabela???
ou se fizer isso logo abaixo a chance é pouca???
Marck
vai depender da sua sorte…rss
Ele vai pegar o último que estiver lá.
Giulliano
Você corre o risco sim…mesmo que a query seja executa logo após o insert…se realmente são várias pessoas apesar de a probabilidade ser pequena pode ser que ocorra…
aí vc teria q adicionar um critério na sua pesquisa…tipo select last_insert_id() from table where descricao = ???
não sei se isso funciona pois faz tempo q não uso mysql
T
thingol
Esse tipo de situação é tão comum que está prevista no JDBC. getGeneratedKeys
Resta ver se isso está corretamente implementado no driver JDBC do MySQL.