Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle wstawia, jeśli wiersz nie istnieje

Kiedy to uruchamiam, pojawia się błąd „brakuje słowa kluczowego INTO”.

Ponieważ IGNORE nie jest słowem kluczowym w Oracle. To jest składnia MySQL.

To, co możesz zrobić, to użyć 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)
/

Z Oracle 10g możemy użyć scalania bez obsługi obu gałęzi. W 9i musieliśmy użyć „małej” gałęzi DOPASOWANEJ.

W starszych wersjach jedynymi opcjami były:

  1. przetestuj istnienie wiersza przed wydaniem INSERT (lub w podzapytaniu);
  2. aby użyć PL/SQL do wykonania INSERT i obsłużyć każdy wynikowy błąd DUP_VAL_ON_INDEX.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak tworzyć procedury składowane PL/SQL z parametrami w bazie danych Oracle

  2. Jak używać wykonania natychmiastowego z klauzulą ​​INTO w bazie danych Oracle

  3. Jak znaleźć LEFT OUTER JOIN lub RIGHT OUTER JOIN z ORACLE JOIN (+)

  4. Jak mogę nadać alias tabeli w Oracle?

  5. Przykład Oracle FOR LOOP REVERSE