Oracle
 sql >> Base de données >  >> RDS >> Oracle

MISE À JOUR sur INSERT clé primaire en double dans Oracle ?

MERGE est l'instruction "faire INSERT ou UPDATE selon le cas" en SQL standard, et probablement aussi en SQL Oracle.

Oui, vous avez besoin d'une "table" à partir de laquelle fusionner, mais vous pouvez presque certainement créer cette table à la volée :

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

(Syntaxe non vérifiée.)