Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

oracle sql:cập nhật nếu tồn tại khác chèn

MERGE không cần "nhiều bảng", nhưng nó cần một truy vấn làm nguồn. Một cái gì đó như thế này sẽ hoạt động:

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

Ngoài ra, bạn có thể thực hiện việc này trong 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 PL / SQL:Ví dụ SQL động sử dụng thực thi ngay lập tức

  2. Chuyển các giá trị được đọc từ tệp dưới dạng đầu vào cho truy vấn SQL trong Oracle

  3. Làm thế nào để có được nhân viên với người quản lý của họ

  4. Tham gia bên trong so với ở đâu

  5. Thay đổi mật khẩu với Oracle SQL Developer