Oracle
 sql >> база данни >  >> RDS >> Oracle

Необходимо е разяснение на SQL заявка с ON DUPLICATE KEY UPDATE

Oracle не поддържа ON DUPLICATE KEY UPDATE синтаксис. Това изглежда е специфичен за MySQL синтаксис.

Най-вероятно изглежда, че искате MERGE изявление

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 )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Налагане на уникален/първичен ключ - индекс за премахване

  2. Манипулиране на колекции

  3. Защо получавам Ora-30004, когато разделителят sys_connect_by_path не присъства в стойностите на колоните

  4. Грешки при задействане ORA-04092 ORA-04088

  5. АКТУАЛИЗИРАНЕ със синтаксис JOIN за Oracle Database