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

Oracle sql:perbarui jika ada yang lain masukkan

MERGE tidak memerlukan "beberapa tabel", tetapi membutuhkan kueri sebagai sumbernya. Sesuatu seperti ini seharusnya bekerja:

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

Atau Anda dapat melakukan ini di 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. Bagaimana cara menginstal Oracle instantclient dan pdo_oci di mesin ubuntu?

  2. Alternatif untuk LIMIT dan OFFSET untuk paging di Oracle

  3. Mengkonfigurasi koneksi antara klien dan server Oracle 10g

  4. JDBC ResultSet getDate kehilangan presisi

  5. Tidak dapat menggunakan kueri LIKE di JDBC PreparedStatement?