Вероятно, тъй като не предоставяте стойност за DB_ID
колона, тази стойност се попълва от ниво на ред преди тригер за вмъкване, дефиниран в таблицата. Предполага се, че този тригер избира стойността от последователност.
Тъй като данните бяха преместени (вероятно наскоро) от производствената база данни, моят залог би бил, че когато данните бяха копирани, последователността също не беше променена. Предполагам, че последователността генерира стойности, които са много по-ниски от най-големия DB_ID
който в момента е в таблицата, водеща до грешката.
Можете да потвърдите това подозрение, като погледнете тригера, за да определите коя последователност се използва и направите
SELECT <<sequence name>>.nextval
FROM dual
и сравнявайки това с
SELECT MAX(db_id)
FROM cmdb_db
Ако, както подозирам, последователността генерира стойности, които вече съществуват в базата данни, можете да увеличите последователността, докато започне да генерира неизползвани стойности, или можете да я промените, за да зададете INCREMENT
към нещо много голямо, вземете nextval веднъж и задайте INCREMENT
обратно към 1.