sql >> Base de Datos >  >> RDS >> Oracle

¿ACTUALIZAR en INSERTAR clave principal duplicada en Oracle?

MERGE es la declaración 'hacer INSERTAR o ACTUALIZAR según corresponda' en SQL estándar y, probablemente, también en Oracle SQL.

Sí, necesita una 'tabla' desde la que fusionarse, pero es casi seguro que puede crear esa tabla sobre la marcha:

 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);

(Sintaxis no verificada).