Oracle
 sql >> Datenbank >  >> RDS >> Oracle

UPDATE auf INSERT doppelten Primärschlüssel in Oracle?

MERGE ist die 'do INSERT or UPDATE as angemessen'-Anweisung in Standard-SQL und wahrscheinlich deshalb auch in Oracle SQL.

Ja, Sie brauchen eine "Tabelle", aus der Sie zusammenführen können, aber Sie können diese Tabelle mit ziemlicher Sicherheit im Handumdrehen erstellen:

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

(Syntax nicht verifiziert.)