Presumibilmente, dal momento che non stai fornendo un valore per il DB_ID
colonna, quel valore viene popolato da un livello di riga prima del trigger di inserimento definito nella tabella. Quel trigger, presumibilmente, sta selezionando il valore da una sequenza.
Poiché i dati sono stati spostati (presumibilmente di recente) dal database di produzione, la mia scommessa sarebbe che quando i dati sono stati copiati, anche la sequenza non è stata modificata. Immagino che la sequenza stia generando valori molto inferiori al più grande DB_ID
che è attualmente nella tabella che porta all'errore.
Puoi confermare questo sospetto osservando il trigger per determinare quale sequenza viene utilizzata ed eseguendo un
SELECT <<sequence name>>.nextval
FROM dual
e confrontandolo con
SELECT MAX(db_id)
FROM cmdb_db
Se, come sospetto, la sequenza sta generando valori che già esistono nel database, è possibile incrementare la sequenza fino a generare valori inutilizzati oppure è possibile modificarla per impostare INCREMENT
su qualcosa di molto grande, prendi nextval una volta e imposta INCREMENT
torna a 1.