Como redefinir uma sequência no PostgreSQL

Como Redefinir Uma Sequencia No Postgresql



Usar a sequência PostgreSQL é uma maneira eficaz de trabalhar com um valor de incremento automático, especialmente para chaves primárias. Quando o valor inicial não for definido, o incremento automático para INT começará em 0. No entanto, você pode especificar qual valor inicial usar para a sequência em sua coluna de incremento automático.

Além disso, se você tiver uma situação que exija a alteração do próximo valor na sequência, poderá redefinir rapidamente a sequência e especificar com qual valor começar para a próxima entrada na tabela. Todos os detalhes que você deve saber sobre como redefinir uma sequência no PostgreSQL estão detalhados neste post. Dê uma olhada!

Exemplo de como redefinir uma sequência no PostgreSQL

Com uma coluna INT, você pode criar uma sequência de incremento automático e usá-la como chave primária para sua tabela. Dessa forma, você não precisará inserir seus valores ao executar uma consulta INSERT, pois os valores inteiros serão gerados automaticamente. Com a sequência criada, o comando ALTER SEQUENCE permite reiniciar a sequência e especificar um novo valor inicial para as novas entradas.







Para este exemplo, trabalharemos com a seguinte tabela “user_details”. Nosso foco é a coluna “user_id” que é uma sequência de incremento automático começando em 100.





Para listar as diferentes sequências em seu banco de dados, execute o seguinte comando:





\ds

Para o nosso caso, temos como alvo a sequência “user_id”.



Para obter mais detalhes sobre a sequência, execute a consulta “select” conforme demonstrado a seguir:

SELECT * FROM nome_sequencia;

Podemos ver que o último valor da sequência existente é 104. Redefinimos esse valor e definimos um novo valor que as novas entradas terão.

Para redefinir a sequência do PostgreSQL, use o seguinte comando:

ALTER SEQUENCE nome_sequencia RESTART COM valor;

Para o nosso caso, digamos que queremos reiniciar a sequência e iniciar as novas entradas em 20. Após executar o comando a seguir, obtemos uma saída, conforme mostrado a seguir, que confirma que a sequência foi alterada.

Se executarmos novamente o comando anterior para obter os detalhes de nossa sequência usando a instrução SELECT, podemos ver que o novo “last_value” para este caso é o valor que especificamos com o comando ALTER.

Vamos inserir uma nova entrada em nossa tabela para ver o que acontece. A imagem a seguir mostra a consulta INSERT e os resultados que obtemos após executar a instrução SELECT. Observe como a nova entrada tem seu “user_id” definido como 20. Todas as novas entradas que fizermos terão seu “user_id” gerado com base no último valor que é 20.

Se fizermos outra entrada, seu “user_id” será 21 e a sequência continuará usando a mesma lógica. É assim que você redefine uma sequência no PostgreSQL. Observe que o comando “reset” não afeta os registros existentes. Ele define apenas o novo valor inicial para as entradas feitas após redefinir a sequência.

Conclusão

Com o PostgreSQL, ter uma maneira de gerar automaticamente os valores inteiros na sua coluna de chave primária simplifica as coisas. Quando você tem uma sequência existente, você pode usar o comando ALTER SEQUENCE
comando com a opção RESTART WITH para especificar qual sequência você deseja redefinir e qual valor definir como o último valor na sequência. Dessa forma, as novas entradas terão o valor inteiro gerado com base no novo último valor. Consulte o exemplo apresentado para entender como funciona a redefinição de uma sequência PostgreSQL.