Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Sisipkan Oracle jika baris tidak ada

Ketika saya menjalankan ini, saya mendapatkan kesalahan "missing INTO keyword" .

Karena IGNORE bukan kata kunci di Oracle. Itu adalah sintaks MySQL.

Yang dapat Anda lakukan adalah menggunakan 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)
/

Dari Oracle 10g kita dapat menggunakan penggabungan tanpa menangani kedua cabang. Di 9i kami harus menggunakan cabang MATCHED "dummy".

Dalam versi yang lebih kuno, satu-satunya pilihan adalah :

  1. menguji keberadaan baris sebelum mengeluarkan INSERT (atau dalam sub-kueri);
  2. untuk menggunakan PL/SQL untuk menjalankan INSERT dan menangani kesalahan DUP_VAL_ON_INDEX yang dihasilkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Koleksi PL/SQL:Tabel Bersarang di Database Oracle

  2. RETENSI LOB

  3. Di Oracle AS alias tidak berfungsi

  4. cara menulis kueri sql

  5. Jenis tanggal tanpa waktu di Oracle