Procedure là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó có thể xem như một hàm trong các ngôn ngữ lập trình.
Trigger là một stored procedure được chạy tự động dựa trên những sự kiện mà nó được đăng ký. Khi các sự kiện này xảy ra trong database, thì nó cũng sẽ được thực thi. Ví dụ như một trigger có thể được gọi khi có một dòng dữ liệu được thêm vào một table, hay một số cột trong bảng bị thay đổi.
Sự khác nhau giữa Triggers và Procedures
TRIGGERS | PROCEDURES |
---|---|
Một Trigger sẽ thực thi tự động mỗi khi có các sự kiện INSERT, DELETE, UPDATE xảy ra trong một table. | Một Procedure sẽ được thi khi khi được gọi thông qua lệnh exec, EXECUTE, hay đơn giản procedure_name |
Không thể gọi một trigger trong một trigger khác. | Có thể gọi một procedure trong một procedure khác. |
Cú pháp: CREATE TRIGGER TRIGGER_NAME | Cú pháp: CREATE PROCEDURE PROCEDURE_NAME |
Các mệnh đề trong transaction như COMMIT, ROLLBACK, SAVEPOINT đều không được sử dụng trong trigger | Tất cả các mệnh đề trong transaction như COMMIT, ROLLBACK, SAVEPOINT đều được sử dụng trong procedure. |
Trigger được sử dụng để duy trì tính toàn vẹn của dữ liệu bằng cách thực thi các mã lệnh trên các dòng dữ liệu mỗi khi xảy ra các hoạt động có thể ảnh hưởng đến dữ liệu. | Procedure được dùng để thực thi các công việc cụ thể được người dùng định nghĩa. |
Trigger không có giá trị trả về cũng như các tham số đầu vào. | Hoạt động như một hàm, procedure có thể nhận các tham số và trả về các kết quả. |
Nguồn tham khảo
https://www.geeksforgeeks.org/difference-between-trigger-and-procedure-in-dbms/