Condividi
Fare una SQL insert in Oracle solo se il record non esiste
Ho una tabella su database Oracle con due campi come chiave primaria, id di tipo intero e state come varchar.
Vorrei poter fare in modo che le nuove insert di ogni record su questa tabella sia fatta solo se il record (con PK: id+state) non esista già; insomma una sorta di insert if not exist
, qualcuno può aiutarmi? Grazie.
In Corso
2
Oracle
19-02-2019
1 Risposta
2144 Visite
+1
Risposte ( 1 approvate )
Ciao Fabio, potresti usare il magical Oracle hint IGNORE_ROW_ON_DUPKEY_INDEX per questo scopo; hint magicamente salta l'inserimento delle righe (rows) duplicate, e normalmente causa un errore per violazione del vincolo di univocità (costraint) sulla chiave primaria 'ORA-00001: unique constraint violated'.
Potresti scrivere una query per l'insert simile a questa:
Di fatto dovresti ottenere su Oracle un comportamento come quello che cerchi, ovvero
insert if not exist