Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
KiNgPiTo

[Resolvido] Como saber o próximo id?

Recommended Posts

KiNgPiTo

Boas tardes!

Não sou muito conhecedor de mysql, apenas o básico...

Imaginamos uma tabela do género:

[table]

[td]    id    [/td]

[td]    nome    [/td]

[td]    1    [/td]

[td]    nome1    [/td]

[td]    2    [/td]

[td]    nome2    [/td]

[td]    3    [/td]

[td]    nome3    [/td]

[td]    4    [/td]

[td]    nome4    [/td]

[/table]

A coluna id tem auto-incremento logo pela lógica eu se quisesse saber o próximo id bastava fazer um MAX, que me retornava o valor 4, somava 1 e porreiro, é o 5 o próximo id a ser atribuido.

Mas se eu eliminar o 3 e o 4 da Base de Dados, o MAX retorna-me o id com o valor 2 e se somar 1 vai-me dar o 3 como próximo id, o que é errado pois o auto-incremento vai passar pelos eliminados e vai atribuir o id com o valor 5 ao próximo registo.

A pergunta é como posso saber o próximo id a ser atribuído sem que este seja o próximo a seguir ao ultimo inserido?

Cumprimentos  :P

Share this post


Link to post
Share on other sites
KiNgPiTo

Obrigado desde já... Já tinha utilizado o LAST_INSERT_ID() e dá-me o valor do ultimo id que tem, não a ultima key que tem...

(Já agora isto vai ser usado em php, logo se houver uma finta por lá, é igual)

Share this post


Link to post
Share on other sites
Tuntankamon

Mas qual é o interesse? Se utilizares o Auto_Increment, o número é definido automaticamente...  🤔

Share this post


Link to post
Share on other sites
anolsi

Obrigado desde já... Já tinha utilizado o LAST_INSERT_ID() e dá-me o valor do ultimo id que tem, não a ultima key que tem...

(Já agora isto vai ser usado em php, logo se houver uma finta por lá, é igual)

Não podes primeiro fazer o insert e depois ir lá saber o número, pleo LAST_INSERT_ID()?


"Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."
Não respondo a questões por PM que possam ser colocadas no fórum!

Share this post


Link to post
Share on other sites
KiNgPiTo

O meu problema é que tenho de saber qual vai ser o próximo id sem ainda o ter inserido pois tenho aqui uns formulários que são impressos com o id que vai ficar depois, enfim, uma confusão que isto já está pois se sabia que isto ia ser assim criava uma coluna para o id e uma outra para o numero do registo esta sim apenas a incrementar...

O problema é que antes de inserir o registo já tenho de saber este id que vai ser atribuído sem ele ainda ser atribuído...

EDIT: Lá consegui...

SHOW TABLE STATUS LIKE 'nome_da_tabela'

Retorna um conjunto de informações, entre as quais a coluna Auto-increment que tem o próximo valor a ser atribuído...

Obrigado pessoal  :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.