TRIGGER SQL LÀ GÌ

Khi học SQL nhiều khi chúng ta phát hiện khái niệm trigger vậy có khi nào bạn tự hỏi trigger là gì ? Nếu chưa tồn tại câu trả lời hãy theo dõi nội dung bài viết dưới phía trên nhé

Trigger là gì ?

Trigger là 1 trong stored procedure không tồn tại tham số. Trigger thực hiện một cách auto khi một trong những ba câu lệnh Insert, Update, Delete làm chuyển đổi dữ liệu bên trên bảng tất cả chứa trigger

Cú pháp của Trigger

CREATE TRIGGER tên_trigger ON tên_bảngFOR DELETE, INSERT, UPDATEAS câu_lệnh_sql

Trigger dùng làm gì ?

Trigger thường xuyên được sử dụng để khám nghiệm ràng buộc (check constraints) trên các 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 áp dụng Trigger để chương trình bao hàm hàm chạy ngầm nhằm phục vụ nhưng trường đúng theo hữu hạn cùng thường không thực hiện 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 để đánh giá tính toàn vẹn của cơ sở dữ liệu.Trigger rất có thể bắt lỗi xúc tích ở mức cơ sở dữ liệu.Có thể dùng trigger là 1 trong những cách khác để thay thế sửa chữa việc triển khai những quá trình hẹn giờ theo lịch.Trigger rất công dụng khi sử dụng để kiểm soát những chuyển đổi của tài liệu trong bảng.

Bạn đang xem: Trigger sql là gì

Nhược điểm:

Trigger chỉ là 1 phần mở rộng lớn của việc kiểm tra tính hòa hợp lệ của tài liệu chứ ko thể ráng thế trọn vẹn được các bước này.Trigger chuyển động ngầm vào csdl, không hiển thị tại tầng giao diện. Bởi vì đó, cực nhọc chỉ ra được điều gì xảy ra trên tầng csdl.Trigger triển khai các update lên bảng dữ liệu vì thế nó có tác dụng tăng lượng các bước lên database và có tác dụng cho khối hệ thống chạy chậm.

Xem thêm: Tìm Hiểu Ban Đầu Về Web Services Là Gì ? Giới Thiệu Về Web Service

Ví dụ sử dụng trigger trong SQL

Chúng ta tất cả bảng employees:

*

Bây giờ, bọn họ sẽ tạo nên 1 TRIGGER cùng với chức năng: lưu giữ lại lịch sử hào hùng UPDATE tin tức của từng EMPLOYEE Đầu tiên, chúng ta sẽ tạo nên một bảng bắt đầu làemployees_edit để gìn giữ sự biến đổ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 mặc định NULL, kích hoạt VARCHAR(50) mặc định NULL);Tiếp theo, bọn họ hãy viết TRIGGER để thực hiện công dụng lưu lại thời điểm đổi khác của employees.

DELIMITER $$CREATE TRIGGER before_employee_update BEFORE UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO employees_edit SET kích hoạt = "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 cùng lastname bị ảnh hưởng bới TRIGGER. Lưu lại ý, với TRIGGER định nghĩa cho INSERT, các bạn chỉ hoàn toàn có thể sử dụng từ khóa NEW. Tuy nhiên, TRIGGER cho DELETE không có hàng bắt đầu nào yêu cầu chỉ hoàn toàn có thể sử dụng từ bỏ khóa OLD. Cùng với TRIGGER cho hàm UPDATE, OLD dùng để đề cập mang lại 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 bao gồm trong cơ sở dữ liệu của bạn, sử dụng:

SHOW TRIGGERS;

Chúng ta hãy bước đầu cập nhật bảng employees để bình chọn TRIGGER vừa mới được định nghĩa:

UPDATE employees phối lastName = "Phan"WHERE employeeNumber = 1056;Để kiểm soát xem TRIGGER đang được triển khai hay chưa, chúng ta cũng có thể truy vấn nằm trong bảng employees_edit:

SELECT * FROM employees_edit;

Kết quả truy vấn trả về:

*

Trigger đã được tiến hành và nó vẫn chèn một bản ghi mới vào bảng employees_edit.