Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

KiNgPiTo

[Resolvido] Como saber o próximo id?

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.