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

Chèn Oracle nếu hàng không tồn tại

Khi tôi chạy cái này, tôi gặp lỗi "thiếu từ khóa INTO".

Bởi vì BỎ QUA không phải là một từ khóa trong Oracle. Đó là cú pháp MySQL.

Những gì bạn có thể làm là sử dụng MERGE.

merge into table1 t1
    using (select 'value1' as value1 ,value2 
           from table2 
           where table2.type = 'ok' ) t2
    on ( t1.value1 = t2.value1)
when not matched then
   insert values (t2.value1, t2.value2)
/

Từ Oracle 10g, chúng ta có thể sử dụng hợp nhất mà không cần xử lý cả hai nhánh. Trong 9i, chúng tôi phải sử dụng một nhánh MATCHED "giả".

Trong các phiên bản cổ hơn, các tùy chọn duy nhất là:

  1. kiểm tra sự tồn tại của hàng trước khi đưa ra CHÈN (hoặc trong một truy vấn phụ);
  2. sử dụng PL / SQL để thực thi INSERT và xử lý mọi lỗi DUP_VAL_ON_INDEX kết quả.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 cách trả lại múi giờ từ giá trị ngày giờ trong Oracle

  2. Phương pháp thu thập:Thủ tục EXTEND trong Cơ sở dữ liệu Oracle

  3. Những điều bạn nên biết trước khi học Oracle

  4. Tìm kiếm Văn bản trong Quy trình Lưu trữ Oracle

  5. Oracle có lưu trữ các số 0 ở cuối cho kiểu dữ liệu Số không?