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

oracle sql:актуализиране, ако съществува, друго вмъкване

MERGE не се нуждае от "множество таблици", но има нужда от заявка като източник. Нещо като това трябва да работи:

MERGE INTO mytable d
USING (SELECT 1 id, 'x' name from dual) s
ON (d.id = s.id)
WHEN MATCHED THEN UPDATE SET d.name = s.name
WHEN NOT MATCHED THEN INSERT (id, name) VALUES (s.id, s.name);

Като алтернатива можете да направите това в PL/SQL:

BEGIN
  INSERT INTO mytable (id, name) VALUES (1, 'x');
EXCEPTION
  WHEN DUP_VAL_ON_INDEX THEN
    UPDATE mytable
    SET    name = 'x'
    WHERE id = 1;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се свържете отдалечено с базата данни Oracle 11g

  2. Как да инсталирате Oracle Linux Automation Manager (известен още като "Oracle Ansible Tower")

  3. Намерете текущи работни места за формуляри и отчети на Oracle

  4. NLS_LANG настройка за JDBC тънък драйвер?

  5. Стъпка по стъпка процес на надграждане за R12.2 Надстройка, част -1