Primeiramente seja muito bem vindo ao PJ, esperamos poder contar contigo para ajudar outros, e tbm no que precisar estamos ai!
tem uma funçao do proprio MySql que faz isso que eh a
mysql_insert_id(); //retorna o id gerado pelo auto_increment
mas por exemplo se depois tu foi mudar teu banco, vc terá que refazer algumas partes do código… o que vc pode fazer, eh após dar um insert recuperar esse ID com um select pegando o ultimo inserido… mas isso se o teu sistema nao tiver uma concorrencia muito grande senao pode ser que ao fazer o select outro registro possa ter sido inserido ja…
Então é isso ai!
cya!
L
lcrPJ
Jujo, valeu pela sugestão, mas o problema é exatamente a concorrencia. Já pensei em utilizar a função max() do MySQL por exemplo, mas o problema, repito, está na concorrencia.
Eu gostaria de pegar o ID que acabei de criar. Algo como utilizar um ponteiro. Mas não sei se é possível e nem como fazer.
J
Juliano_CarnielPJ
é entao usa aquela funçao mesmo… ela retorna o id a ser inserido… ou o que foiinserido… agora nao sei… mas eu acho que eh o id do proximo a ser inserido…
bom outra forma, eh vc fazer uma trigger, acho que as versões novas do MySql tem trigge neh… bom ela constaria de a cada inserção retorna o id inserido… dai daria certinho…
sugestão =)
cya!
J
jack_ganzhaPJ
Olá, depois de executar o Statement, use o metodo getGeneratedKeys para recuperar a chave gerada. Assim vc não vai ter problema de concorrencia.