Parece que select nextval('table_name')
realmente faz o incremento de valor.
Meu objetivo é "prever" o nextval
valor em todas as tabelas do banco de dados sem realmente fazer qualquer incremento. Esta deve ser uma operação somente leitura.
Não consigo executar o select nextval
em uma conexão somente leitura, pois ele está realmente tentando fazer uma transação. Eu gostaria de poder consultar isso e monitorar as sequências em um banco de dados de réplica somente leitura.
Como você resolveria isso e atingiria a meta?
Eu assumiria que
SELECT currval('seq_name') + 1
ouSELECT last_value + 1 FROM seq_name
seria a resposta, mas isso é apenas se você estiver incrementando por1
, ou souber o incremento à mão.Se você não estiver incrementando
1
e não souber o incremento, tente isto:ou
Com base nas respostas anteriores, percebi que ele falha para o primeiro valor adicionado: A consulta retorna 2 em vez de 1 quando não há valores adicionados. Aqui está minha solução: