Trigger Là Gì ? Sử Dụng Trigger Trong SQL - Hoclaptrinh
Có thể bạn quan tâm
Khi học SQL đôi khi chúng ta bắt gặp khái niệm trigger vậy có bao giờ bạn tự hỏi trigger là gì ? Nếu chưa có câu trả lời hãy theo dõi bài viết dưới đây nhé
Trigger là gì ?
Trigger là một stored procedure không có tham số. Trigger thực thi một cách tự động khi một trong ba câu lệnh Insert, Update, Delete làm thay đổi dữ liệu trên bảng có chứa trigger
Cú pháp của Trigger
CREATE TRIGGER tên_trigger ON tên_bảng FOR {DELETE, INSERT, UPDATE} AS câu_lệnh_sqlTrigger dùng làm gì ?
Trigger thường được sử dụng để kiểm tra ràng buộc (check constraints) trên nhiều quan hệ (nhiều bảng/table) hoặc trên nhiều dòng (nhiều record) của bảng. Ngoài ra việc sử dụng Trigger để chương trình có những hàm chạy ngầm nhằm phục vụ nhưng trường hợp hữu hạn và thường không sử dụng cho mục đích kinh doanh hoặc giao dịch.
Ưu, nhược điểm của TRIGGER
Ưu điểm:
- Sử dụng Trigger để kiểm tra tính toàn vẹn của cơ sở dữ liệu.
- Trigger có thể bắt lỗi logic ở mức cơ sở dữ liệu.
- Có thể dùng trigger là một cách khác để thay thế việc thực hiện những công việc hẹn giờ theo lịch.
- Trigger rất hiệu quả khi sử dụng để kiểm soát những thay đổi của dữ liệu trong bảng.
Nhược điểm:
- Trigger chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thể thay thế hoàn toàn được công việc này.
- Trigger hoạt động ngầm trong csdl, không hiển thị ở tầng giao diện. Do đó, khó chỉ ra được điều gì xảy ra ở tầng csdl.
- Trigger thực hiện các update lên bảng dữ liệu vì thế nó làm tăng lượng công việc lên csdl và làm cho hệ thống chạy chậm.
Ví dụ Sử dụng trigger trong SQL
Chúng ta có bảng employees:
Bây giờ, chúng ta sẽ tạo 1 TRIGGER với chức năng: lưu lại lịch sử UPDATE thông tin của mỗi EMPLOYEE Đầu tiên, chúng ta sẽ tạo một bảng mới làemployees_edit để lưu lại sự thay đổi trên bảng employee:
CREATE TABLE employees_audit ( id INT AUTO_INCREMENT PRIMARY KEY, employeeNumber INT NOT NULL, lastname VARCHAR(50) NOT NULL, changedat DATETIME DEFAULT NULL, action VARCHAR(50) DEFAULT NULL );Tiếp theo, chúng ta hãy viết TRIGGER để thực hiện chức năng lưu lại thời điểm thay đổi của employees.
DELIMITER $$ CREATE TRIGGER before_employee_update BEFORE UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO employees_edit SET action = 'update', employeeNumber = OLD.employeeNumber, lastname = OLD.lastname, changedat = NOW(); END$$ DELIMITER ;Trong thân của cú pháp TRIGGER, chúng ta sử dụng từ khóa OLD để truy cập vào hàng của cột employeeNumber và lastname bị ảnh hưởng bới TRIGGER. Lưu ý, với TRIGGER định nghĩa cho INSERT, bạn chỉ có thể sử dụng từ khóa NEW. Tuy nhiên, TRIGGER cho DELETE không có hàng mới nào nên chỉ có thể sử dụng từ khóa OLD. Với TRIGGER cho hàm UPDATE, OLD dùng để đề cập đến hàng trước khi được cập nhật, NEW đề cập đến hàng sau khi được cập nhật. Để xem tất cả các TRIGGER có trong cơ sở dữ liệu của bạn, sử dụng:
SHOW TRIGGERS;
Chúng ta hãy bắt đầu cập nhật bảng employees để kiểm tra TRIGGER vừa được định nghĩa:
UPDATE employees SET lastName = 'Phan' WHERE employeeNumber = 1056;Để kiểm tra xem TRIGGER đã được thực hiện hay chưa, bạn có thể truy vấn trên bảng employees_edit:
SELECT * FROM employees_edit;
Kết quả truy vấn trả về:
Trigger đã được thực hiện và nó đã chèn một bản ghi mới vào bảng employees_edit.
Từ khóa » Cú Pháp Trigger Trong Sql
-
Sử Dụng Trigger Trong SQL Qua Ví Dụ Cơ Bản. - Viblo
-
Trigger Trong SQL Là Gì? Cách Tạo & Xóa Trigger Trong SQL
-
TRIGGER Trong SQL - TopDev
-
Trigger Trong SQL Là Gì? Ví Dụ Cụ Thể Về Trigger - Vietnix
-
Trigger Trong SQL Là Gì? Hướng Dẫn Sử Dụng Trigger Trong SQL
-
Trigger Trong SQL Server: Hướng Dẫn Từ A-Z Về Trigger - Comdy
-
Sử Dụng Trigger Trong SQL Qua Ví Dụ Cơ Bản. - TMA Solutions
-
Hướng Dẫn Cách Sử Dụng Trigger Trong SQL - Tino Group
-
Giới Thiệu Trigger Trong SQL Server
-
Trigger Trong SQL Server: Hướng Dẫn Từ A-Z Về Trigger - DongnaiArt
-
Trigger Trong Sql - Nhân Hòa
-
Sử Dụng Trigger Sql Là Gì - Cách Tạo Và Ví Dụ Về Trigger Trong ...
-
[NEW] Trigger Trong SQL Server: Hướng Dẫn Từ A-Z Về Trigger
-
Trigger Trong Sql Là Gì