Oracle
 sql >> Database >  >> RDS >> Oracle

AGGIORNAMENTO su INSERT chiave primaria duplicata in Oracle?

MERGE è l'istruzione "do INSERT o UPDATE come appropriato" in Standard SQL, e probabilmente anche in Oracle SQL.

Sì, hai bisogno di una "tabella" da cui unire, ma puoi quasi sicuramente creare quella tabella al volo:

 MERGE INTO Movie_Ratings M
       USING (SELECT 1 AS mid, 3 AS aid, 8 AS rating FROM dual) N
          ON (M.mid = N.mid AND M.aid = N.aid)
       WHEN     MATCHED THEN UPDATE SET M.rating = N.rating
       WHEN NOT MATCHED THEN INSERT(  mid,   aid,   rating)
                             VALUES(N.mid, N.aid, N.rating);

(Sintassi non verificata.)