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

Sisipkan/perbarui Pemicu Oracle

Saya sarankan untuk menentukan pemicu kebakaran untuk setiap baris. Saya merasa ini jauh lebih mudah.

Anda dapat menghitung untuk melihat apakah MovieStar.Name nilai sudah ada dan kemudian masukkan jika tidak; itu mirip dengan pendekatan yang Anda miliki di atas. Ini akan gagal jika pengguna lain menyisipkan bintang film antara waktu Anda memeriksa dan waktu Anda memasukkan, tapi mungkin cukup baik untuk tugas kelas. Ada pendekatan tidak gagal yang diterima untuk ini, tetapi Anda mungkin belum membahasnya di kelas.

Cobalah sesuatu seperti ini; itu mungkin menggabungkan semua yang telah Anda pelajari di kelas sejauh ini:

CREATE OR REPLACE TRIGGER TestTrig
AFTER UPDATE OR INSERT ON STARSIN
FOR EACH ROW
DECLARE
  movieStarCount NUMBER;
BEGIN
  SELECT COUNT(*) INTO movieStarCount
    FROM MovieStar
    WHERE Name = :NEW.StarName;
  IF movieStarCount = 0 THEN
    INSERT INTO MovieStar (Name) VALUES (:NEW.StarName);
  END IF;
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. perbedaan antara tabel tab dan all_tables di Oracle

  2. Buat database kosong menggunakan Asisten konfigurasi Database Oracle

  3. Oracle SYS_GUID tidak berubah

  4. Oracle ADF di JBoss:Masalah Koneksi Jdbc yang dibungkus

  5. dapatkah saya mempertahankan satu sesi Oracle dari dua klien oci?