Como obtenho o valor AUTO_INCREMENT atual para uma tabela no MySQL?
mysql
auto-increment
bparise
fonte
fonte
Respostas:
Você pode obter todos os dados da tabela usando esta consulta:
Você pode obter exatamente essas informações usando esta consulta:
fonte
DATABASE()
nome do banco de dados explícito.SELECT MAX(id) FROM table_name
?Eu acredito que você está procurando pela função LAST_INSERT_ID () do MySQL . Se estiver na linha de comando, basta executar o seguinte:
Você também pode obter esse valor através de uma consulta SELECT:
fonte
Se você apenas deseja saber o número, em vez de obtê-lo em uma consulta, pode usar:
Você deve ver o incremento automático na parte inferior
fonte
1
.Embora a resposta de methai esteja correta se você executar manualmente a consulta, ocorre um problema quando duas transações / conexões simultâneas realmente executam essa consulta em tempo de execução na produção (por exemplo).
Apenas tentei manualmente no MySQL workbench com 2 conexões abertas simultaneamente:
Transação 1:
Transação 2:
A inserção da transação 1 está correta: a inserção da transação 2 está com erro: Código do erro: 1062. Entrada duplicada '21' para a chave 'PRIMARY'.
Uma boa solução seria a resposta do jvdub porque, por transação / conexão, as 2 inserções serão:
Transação 1:
Transação 2:
Mas temos que executar o last_insert_id () logo após a inserção! E podemos reutilizar esse ID para ser inserido em outras tabelas onde uma chave estrangeira é esperada!
Além disso, não podemos executar as 2 consultas da seguinte maneira:
porque realmente estamos interessados em pegar / reutilizar esse ID em outra tabela ou retornar!
fonte
last_insert_id()
AUTO_INCREMENT
valor.código de exemplo executável do mysqli:
fonte
Se a coluna for incrementada automaticamente no servidor sql, para ver o valor atual incrementado automaticamente, e se você deseja editar esse valor para essa coluna, use a consulta a seguir.
fonte
Consulta para verificar a porcentagem de "uso" de AUTO_INCREMENT para todas as tabelas de um determinado esquema (exceto colunas com o tipo bigint não assinado ):
fonte
Eu estava procurando o mesmo e acabei criando um método estático dentro de uma classe Helper (no meu caso, chamei-o de App \ Helpers \ Database).
O método
Para chamar o método e obter o MySql AUTO_INCREMENT, use o seguinte:
Espero que ajude.
fonte