Triggers Là Gì, Giải Thích Tất Cả Ý Nghĩa Của Trigger Giải Thích Tất Cả Ý Nghĩa Của Trigger

      95

I. Khái niệm

Trigger có thể đọc nkhô giòn là một công đoạn hẹn tiếng xúc tiến SQL, được chạy từ Server không đề xuất ngóng phía client Điện thoại tư vấn Hay những xẩy ra sinh sống phía server SAU KHI gồm các events Inser, Delete, giỏi Update. Tuy nhiên không giống với Stored Procedure, Trigger trọn vẹn không có tmê man số. Và ta quan trọng Call triển khai trực tiếp Trigger bởi lệnh EXECUTE nlỗi Strore Procedure xuất xắc bất kỳ lệnh làm sao khác. Trigger chỉ hoàn toàn có thể chạy một giải pháp auto. Trigger được lưu trữ trong DB Server với thường xuất xắc được dùng để chất vấn ràng buộc toàn vẹn dữ liệu.

Bạn đang xem: Triggers là gì, giải thích tất cả Ý nghĩa của trigger giải thích tất cả Ý nghĩa của trigger

II. Sử dụng Trigger

Để sinh sản một Trigger, bạn áp dụng câu lệnh CREATE TRIGGER:

CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW BEGIN ... END;Trong đó:

Một Trigger được khởi sinh sản sau câu lệnh CREATE TRIGGER. Quy tắc viết tên bắt buộc theo đúng nguim tắc: __, ví dụ before_employees_update.Thời gian kích hoạt : BEFORE hoặc AFTER. Cần yêu cầu chỉ định thời hạn kích hoạc khi chúng ta xác minh được tiến trình kích hoạt của chính nó. Sử dụng từ khóa BEFORE trường hợp bạn muốn xử lýhành vi trước khi triển khai biến đổi bên trên bạn dạng và AFTER nếu bạn phải cách xử trí hành động sau khi đổi khác được triển khai xong.Sự khiếu nại tạo ra hoàn toàn có thể là INSERT, UPDATE, DELETE.Trình kích hoạt đề xuất được link với một bảng ví dụ, thực hiện từ khóa ON để khẳng định.Câu lệnh SQL yêu cầu được đặt giữa trường đoản cú khóa BEGIN và END.

III. Ví dụ

Chúng ta gồm bảng employees:

*

Bây giờ, bọn họ sẽ khởi tạo 1 TRIGGER cùng với chức năng: lưu giữ định kỳ sử UPDATE thông tin của mỗi EMPLOYEETrước hết, bọn họ sẽ tạo nên một bảng new là employees_edit nhằm lưu giữ sự biến đổi bên 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, bọn họ hãy viết TRIGGER để triển khai tác dụng cất giữ thời khắc biến hóa của employees.

Xem thêm: Tiếp Cận Thị Trường ( Market Access Là Gì ? Đặc Điểm Và Vai Trò Của Tổ Chức Wto

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 thực hiện trường đoản cú khóa OLD nhằm truy cập vào sản phẩm của cột employeeNumber và lastname bị tác động bới TRIGGER.Lưu ý, với TRIGGER khái niệm cho INSERT, chúng ta chỉ hoàn toàn có thể sử dụng tự khóa NEW. Tuy nhiên, TRIGGER cho DELETE không có mặt hàng mới làm sao nên chỉ có thể thực hiện tự khóa OLD. Với TRIGGER mang lại hàm UPDATE, OLDdùng để làm đề cập đến sản phẩm trước khi được cập nhật, NEW đề cập tới hàng sau thời điểm được update.Để coi toàn bộ các TRIGGER tất cả vào các đại lý tài liệu của doanh nghiệp, sử dụng:SHOW TRIGGERS;Chúng ta hãy bắt đầu update bảng employees nhằm kiểm soát TRIGGER vừa mới được định nghĩa:UPDATE employees SET lastName = "Phan"WHERE employeeNumber = 1056;Để kiểm soát xem TRIGGER đã có thực hiện giỏi chưa, chúng ta có thể truy hỏi vấn trên bảng employees_edit:

SELECT * FROM employees_edit;Kết quả truy vấn trả về:

Vậy là Trigger đã được thực hiện với nó đang cyếu một bản ghi mới vào bảng employees_edit.

IV. Tại sao ta nên sài TRIGGER

Ưu điểm:

Sử dụng Trigger nhằm bình chọn tính toàn diện của cơ sở dữ liệu.Trigger có thể bắt lỗi lô ghích tại mức các đại lý dữ liệu.Có thể sử dụng trigger là một biện pháp khác để thay thế vấn đề thực hiện phần nhiều các bước hứa hẹn giờ theo lịch.Trigger khôn cùng công dụng khi thực hiện để kiểm soát và điều hành những đổi khác của tài liệu trong bảng.

Nhược điểm:

Trigger chỉ là một phần mở rộng của Việc bình chọn tính vừa lòng lệ của tài liệu chđọng cấp thiết thay thế sửa chữa hoàn toàn được công việc này.Trigger chuyển động ngầm vào csdl, không hiển thị ở tầng bối cảnh. Do đó, khó chỉ ra được điều gì xảy ra tại tầng csdl.Trigger triển khai các update lên bảng tài liệu chính vì như vậy nó làm tăng lượng quá trình lên csdl với khiến cho hệ thống chạy lờ đờ.