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

anolsi

Saber o valor seguinte do auto increment

14 mensagens neste tópico

Eu tenho uma tabela, cuja chave primária tem a propriedade auto increment, como fazer, via sql, qual é o próximo valor que ele irá atribuir? E há a possibilidade de o definir?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que isso depende do SGBD...

Nos Postrgres, precisas de ter uma sequências, e depois tens a função currval.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, esqueci-me de mencionar que estou a trabalhar com o MySQL

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

"select LAST_INSERT_ID()" Já tentaste?

Estava a pesquisar e encontrei isso, não sei se funciona mesmo..

Edit: Depois tens que incrementar o valor claro..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
LAST_INSERT_ID() (with no argument) returns the first  automatically generated value that was set for an AUTO_INCREMENT column by the most recently executed  INSERT statement to affect such a column. For example, after inserting a row that generates an AUTO_INCREMENT value, you can get the value like this:

Pelo que percebi ele dá do último insert feito com sucesso, mas tendo eu várias tabelas, como digo que só quero de determinada?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não eliminares dados das tabelas, é fácil procurando o valor máximo ou contando o número de registos... Mas como duvido que isto te sirva, se calhar só mesmo com um campo específico numa tabela para isso..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sei que faz tempo que passaram por aqui mas ai esta uma resposta que de certeza soluciona!

SELECT  ISNULL(MAX(NomeDoCampoParaIncrementar), 0) + 1
FROM NomeDaTabelaQueContenOCampo

Eu já testei.

Ah claro vale lembrar que o não pode ser auto Incremente.

Boas até Logo!! :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se for de dois campos repete-se o Codigo, dentro de um procedimento por exemplo!

Se for um auto incremente de 2 em 2 ao inves de somar 1 soma-se 2

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes sempre seleccionar o ultimo registo inserido e adicionar 1 e ja sabes qual é o proximo,nao ? (hmm, se os dados poderem ser apagados acho que nao é la grande solução :S)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Em vez de utilizares o auto-increment, verifica se o MySql suporta o increment, com uma seed inicial e o valor do próximo incremento. Pelo menos, no Microsoft SQL Server isto era possível de ser implementado.

Cumps!

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas porque queres saber qual o valor? sabes que mesmo indo "buscar" esse valor, logo a seguir já pode ter sido incrementado. portanto.. qual a utilidade de saberes o valor? :P

Inté!

0

Partilhar esta mensagem


Link 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