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

Chèn / cập nhật Oracle Trigger

Tôi khuyên bạn nên chỉ định kích hoạt kích hoạt cho mỗi hàng. Tôi thấy những điều này dễ dàng hơn rất nhiều.

Bạn có thể đếm xem MovieStar.Name giá trị đã tồn tại và sau đó chèn nếu nó không có; tương tự như cách tiếp cận bạn có ở trên. Điều này sẽ không thành công nếu người dùng khác chèn ngôi sao phim giữa thời điểm bạn kiểm tra và thời điểm bạn chèn, nhưng nó có thể đủ tốt cho một bài tập trong lớp. Có những cách tiếp cận không thất bại được chấp nhận cho việc này nhưng bạn có thể chưa bao gồm chúng trong lớp.

Hãy thử một cái gì đó như thế này; nó có thể kết hợp mọi thứ bạn đã đề cập trong lớp cho đến nay:

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. Làm cách nào để thêm truy vấn thời gian trong Oracle?

  2. Bảng bên ngoài Oracle

  3. Ý nghĩa chính xác của việc có một điều kiện như trong đó 0 =0 là gì?

  4. Trả về các hàng dữ liệu từ một khối pl / sql

  5. Oracle BI:Chọn tất cả các bản ghi từ tuần trước