Presumivelmente, já que você não está fornecendo um valor para o
DB_ID
coluna, esse valor está sendo preenchido por um nível de linha antes do gatilho de inserção definido na tabela. Esse gatilho, presumivelmente, é selecionar o valor de uma sequência. Como os dados foram movidos (presumivelmente recentemente) do banco de dados de produção, minha aposta seria que, quando os dados fossem copiados, a sequência também não fosse modificada. Eu diria que a sequência está gerando valores muito menores que o maior
DB_ID
que está atualmente na tabela que leva ao erro. Você pode confirmar essa suspeita olhando para o gatilho para determinar qual sequência está sendo usada e fazendo uma
SELECT <<sequence name>>.nextval
FROM dual
e comparando isso com
SELECT MAX(db_id)
FROM cmdb_db
Se, como suspeito, a sequência está gerando valores que já existem no banco de dados, você pode incrementar a sequência até gerar valores não utilizados ou alterá-la para definir o
INCREMENT
para algo muito grande, pegue o nextval uma vez e defina o INCREMENT
volta para 1.