Trigger Là Gì Sql

     

Trigger là giấy tờ thủ tục SQL được thực hiện ở phía sever khi có bất kỳ sự khiếu nại nào xẩy ra như Insert, Update tuyệt Delete.

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


Trigger là thuật ngữ hay được thực hiện trong SQL. Vì vậy những ai đang có ý định học tập về ngôn từ truy vấn tài liệu thì đừng vứt qua các kiến thức Trigger vào SQL của bài share sau đây nhé.


Khái niệm Trigger vào SQL là gì?

Trigger là giấy tờ thủ tục SQL được tiến hành ở phía sever khi có ngẫu nhiên sự kiện nào xảy ra như Insert, Update hay Delete. Không tính ra, Trigger còn được hiểu là một stored procedure dạng quan trọng (vì nó không có tham số) được thực thi tự động hóa ngay khi bao gồm sự khiếu nại làm dữ liệu bị vậy đổi. Vps DB là khu vực lưu trữ, quản lý Trigger, và được áp dụng khi người tiêu dùng muốn đánh giá sự ràng buộc trọn vẹn của DB.

Ba đặc điểm tạo bắt buộc sự khác biệt giữa Trigger và stored procedures:

Trigger được triển khai tự động. Trigger ko có thời cơ nhận thông số.

Người cần sử dụng không thể cam kết, tuyệt khôi phục bất kỳ transaction làm sao trong Trigger. 

Tuy nhiên, bài toán không dùng tham số trên Trigger không là một trong hạn chế của quy trình nhận tin tức sự kiện, và người dùng hoàn toàn có rất nhiều lựa chọn khác giao hàng cho vận động lấy thông tin từ sự kiện.

*

Trường hợp thực hiện Trigger trong SQL Server 

Trigger vào SQL được sử dụng trong số trường hợp sau:

đánh giá tính ràng buộc của không ít quan hệ giữa các bảng hoặc các dòng của bảng. Ngăn chặn thao tác xóa những dữ liệu quan trọng. Tận dụng tối đa Trigger để sở hữu các hàm chạy ngầm, giao hàng cho một vài trường hợp rõ ràng của fan dùng.

Cú pháp tạo thành Trigger trong SQL cơ bản

Dưới đó là đoạn code sản xuất Trigger cơ bản: 

CREATE TRIGGER tên_trigger

ON Tên_bảng

< WITH >

AFTER

, ,

Cấu chế tác Trigger vào SQL Server

Trigger vào SQL gồm 2 lớp, gồm:

DDL (Data Definition Language) Trigger: Là lớp có công dụng kích hoạt khi cấu tạo sự kiện bị đổi khác (như sinh sản mới, chỉnh sửa, thải trừ bảng), hoặc sự kiện tương quan đến máy chủ (cập nhật thống kê, đổi khác bảo mật). DML (Data Modification Language) Trigger: một số loại này được sử dụng nhiều nhất. Đối với DML Trigger, sự kiện kích hoạt chỉ nên câu lệnh sửa đổi dữ liệu (chèn, cập nhật, xóa) bên trên bảng.

Bên cạnh đó, DML Trigger cũng đều có một số các loại khác như: 

- FOR, AFTER : đều Trigger này sẽ tiến hành thực thi khi ngừng câu lệnh kích hoạt. 

INSTEAD OF : trái lại với Trigger FOR (AFTER), Trigger này được thực hiện để tiến hành lệnh kích hoạt. Điều này còn có nghĩa, nó được sử dụng thay đến câu lệnh kích hoạt. Một số loại Trigger này cực kì quan trọng cùng hữu ích. Bởi vì nó giúp người dùng có thể tham chiếu chéo toàn vẹn đến những dữ liệu. 
*

Vai trò của Trigger trong SQL hệ thống là gì?

Mối quan hệ giới tính của dữ liệu (relational databases) có đặc điểm cơ phiên bản là tính duy nhất quán. Điều này được gọi là tất cả thông tin lưu trữ trong database phải nhất quán với những session, transaction. Vày thế, để thực hiện tính nhất quán này, SQL vps phải thực hiện sự ràng buộc giữa những primary key với foreign key.

Xem thêm: 【 Sinh Năm 2011 Là Mệnh Gì, Con Gì, Hợp Với Hướng Và Màu Gì Nhất ?

Ngoài ra, vào SQL Server, khi 2 bảng nằm tại 2 database hoặc lắp thêm chủ không giống nhau thì việc xúc tiến tính trọn vẹn tham chiếu thân chúng bởi foreign key sẽ không thể thực hiện được. Do đó, đối với tình huống này chỉ có giải pháp duy nhất là cần sử dụng Trigger trong SQL Server

Ưu điểm của Trigger vào SQL

thuận tiện viết code. Vì về bản chất, bọn chúng đã được mã hóa như stored procedure. Nhờ vào thế, quá trình bắt đầu làm việc với Trigger trở cần thuận lợi, dễ dãi và nhanh lẹ hơn.  chất nhận được người dùng hoàn toàn có thể tạo phân tích và đo lường cơ phiên bản thông qua việc áp dụng bảng dữ liệu đã xóa trong Trigger. Bằng cách tận dụng bảng này chèn vào bảng kiểm tra, các bạn sẽ dễ dàng xây dựng giải pháp đánh giá chỉ phù hợp. Cung cấp người sử dụng gọi những store procedure, hàm tàng trữ trong một Trigger. Tạo Trigger vào SQL Server trở phải hữu ích khi người dùng xác thực các dữ liệu sản xuất hoặc update theo batch. Được sử dụng để thực thi tính toàn vẹn tham chiếu dữ liệu. Trong trường hợp những sự kiện xẩy ra khi tất cả sự điều chỉnh dữ liệu như thêm vào, update hoặc xóa thì sứ mệnh của Trigger siêu hữu ích. Thông qua CLR Trigger, người dùng được phép làm cho Trigger bằng phương pháp tận dụng code mặt ngoài. Đây là các loại Trigger chỉ định phương thức hợp ngữ viết bởi .NET liên kết với Trigger. Tất cả tới 32 cấp độ lồng vào nhau của những Trigger. Vào đó, một Trigger được xem là lồng vào nhau khi thực hiện hành động kích hoạt Trigger khác. Thực hiện Trigger để thay thế sửa chữa các các bước hẹn giờ theo lịch.

Nhược điểm của Trigger trong SQL

Trigger nhập vai trò là 1 phần của quá trình kiểm tra tính phù hợp lệ dữ liệu. Nó không sửa chữa cho toàn bộ vận động này.  Chỉ hoạt động ngầm vào cơ sở tài liệu và không hiển thị sinh hoạt giao diện nên khó chỉ ra những vấn đề xảy ra tại tầng cơ sở dữ liệu. Buổi giao lưu của Trigger là cập nhật lên bảng dữ liệu nên có tác dụng tăng khối lượng các bước cho cơ sở dữ liệu. Vì thế, hệ thống sẽ quản lý chậm hơn.
*

Bài tập về Trigger trong SQL

Để đọc hơn về Trigger, chúng ta có thể tham khảo lấy ví dụ như sau:

Giả sử, các bạn có bảng employees như hình minh họa bên dưới.

*

Bây giờ, bạn tạo một Trigger có công dụng lưu giữ kế hoạch sử update của từng nhân viên. Để thực hiện, bạn làm theo công việc hướng dẫn sau:

Bước 1: bạn cần tạo một bảng employee mới, khắc tên là employee_edit bằng lệnh như sau.

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

);

Bước 2: bạn viết Trigger thực hiện chức năng lưu trữ các biến hóa của employees. Câu lệnh lúc này là:

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âu lệnh trên, chúng ta dùng tự khóa OLD để có thể truy cập tin tức dữ liệu của sản phẩm trong cột employeeNumber và lastname bị Trigger gây hình ảnh hưởng. 

Lưu ý: 

vào trường hợp chế tạo ra Trigger cho thêm tài liệu (Insert), bạn thực hiện từ khóa NEW. Đối với trường hợp chế tạo ra Trigger nhằm xóa dữ liệu, bạn áp dụng từ khóa OLD. Đối cùng với Trigger mang đến việc update dữ liệu thì bạn thực hiện từ khóa OLD mang đến hàng trước khi cập nhật, trường đoản cú khóa NEW đến hàng sau thời điểm cập nhật.  Để xem tổng thể Trigger trong cửa hàng dữ liệu, bạn dùng hàm SHOW TRIGGERS;

Bước 3: triển khai cập nhập bảng employees với cú pháp câu lệnh sau.

Xem thêm: Vai Trò Của Hệ Thống Điện Quốc Gia Là, Công Nghệ 12 Bài 22: Hệ Thống Điện Quốc Gia

UPDATE employees 

SET 

lastName = "Phan"

WHERE

employeeNumber = 1056;

Nếu mong kiểm tra TRIGGER được triển khai chưa, bạn sử dụng câu lệnh dưới để truy tìm vấn ở bảng employees_edit:

SELECT * FROM employees_edit;

Lúc này, kết quả truy vấn trả về như hình sau:

*

Như vậy, Trigger đã được thực hiện, đôi khi nó đã triển khai chèn một bảng ghi new trong bảng employees_edit.

Xóa Trigger vào SQL

Cú pháp DROP TRIGGER là câu lệnh xóa Trigger vào SQL khỏi cơ sở dữ liệu. Đối cùng với Trigger DML, câu lệnh tất cả dạng minh họa như sau: 

DROP TRIGGER < IF EXISTS > trigger_name < ,...n >;

Trong đó:

IF EXISTS: Là xóa Trigger đang tồn tại. Schema_name: thương hiệu của lượt đồ bao gồm chứa Trigger DML. Trigger_name: tên của Trigger buộc phải xóa.

Khi mong xóa những Trigger cùng lúc, bạn sử dụng dấu “,” nhằm phân tách Trigger. 

Đối với Trigger DDL, để xóa một hay các Trigger, các bạn dùng câu lệnh DROP TRIGGER sau:

DROP TRIGGER < IF EXISTS > trigger_name < ,...n >

ON DATABASE ;

Trong đó:

DATABASE: Là phạm vi trigger DDL trong đại lý dữ liệu. ALL SERVER: Là phạm vi áp dụng của Trigger DDL đến máy chủ.

Đối cùng với xóa Trigger của sự kiện LOGON, các bạn dùng câu lệnh bên dưới: 

DROP TRIGGER < IF EXISTS > trigger_name < ,...n >

ON ALL SERVER;

Lưu ý: 

Khi chúng ta xóa bất ký kết bảng như thế nào thì toàn cục Trigger vào SQL có link với bảng sẽ tự động hóa xóa theo.