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

Requête SQL avec ON DUPLICATE KEY UPDATE clarification nécessaire

Oracle ne prend pas en charge la ON DUPLICATE KEY UPDATE syntaxe. Cela semble être une syntaxe spécifique à MySQL.

Très probablement, vous sembleriez vouloir un MERGE déclaration

MERGE INTO table1 t1
  USING (SELECT col1, col2, col3 
           FROM table2) ss
     ON (t1.col1 = ss.col1) -- whatever the key is
   WHEN MATCHED THEN
     UPDATE SET t1.col1 = ss.col1,
                t1.col2 = ss.col2,
                t1.col3 = ss.col3
   WHEN NOT MATCHED THEN 
     INSERT( t1.col1, t1.col2, t1.col3 )
       VALUES( ss.col1, ss.col2, ss.col3 )