Trigger trong SQL là gì? Cách tạo & xóa Trigger trong SQL
Trigger trong SQL là gì? Trigger có vai trò gì trong SQL Server? Chúng có những ưu điểm, nhược điểm cụ thể như thế nào? Bạn đã biết cách tạo Trigger trong SQL hay chưa? Bài viết dưới đây sẽ cung cấp cho bạn những thông tin cần thiết và chính xác nhất về những thắc mắc này.
Trigger sql là gì? Trigger trong SQL chính là một đoạn procedure code, chúng sẽ vận hành chỉ khi có một sự kiện nào đó xảy ra. Để có thể kích hoạt trigger trong SQL server chúng ta có thể sử dụng rất nhiều loại sự kiện khác nhau. Một trong số đó có thể nhắc đến việc chèn hàng vào trong bảng, làm lại/ thay đổi cấu trúc bảng, đăng nhập vào một phiên bản server mới,... Dưới đây là những đặc điểm chính khiến trigger SQL không giống với những stored procedures:
Vấn đề không thể dùng những tham số không phải là hạn chế để có thể nhận các thông tin từ sự kiện. Người dùng sẽ có những lựa chọn thay thế khác để lấy được thông tin từ sự kiện.
Để tạo được một Trigger, người dùng cần sử dụng đến câu lệnh CREATE TRIGGER:
Trong đó:
Trong SQL Server sẽ có hai lớp trigger. Cụ thể, các lớp này có những đặc điểm như thế nào? Cùng phân tích cụ thể hơn ở nội dung ngay dưới đây.
DDL là viết tắt của cụm Data Definition Language. DDL trigger sẽ kích hoạt khi những sự kiện bị thay đổi cấu trúc như việc tạo, sửa đổi, bỏ bảng. Cũng có thể xuất hiện trong những sự kiện liên quan tới server (sửa đổi bảo mật, cập nhật thống kê).
DML là viết tắt của cụm từ Data Modification Language. DML trigger là một loại trigger phổ biến và được sử dụng nhiều nhất hiện nay. Lúc này, việc kích hoạt chính là câu lệnh sửa đổi dữ liệu. Đó có thể là một câu lệnh chèn vào bảng, cập nhật bảng hoặc xóa bỏ bảng.
Bên cạnh đó, DML trigger cũng có những loại khác như:
>>> Xem thêm: Assembly là gì? Tìm hiểu về ngôn ngữ Assembly từ A - Z
Relational databases có đặc điểm là tính nhất quán dữ liệu. Nghĩa là những thông tin được lưu trong database là nhất quán. Chúng nhất quán trong mọi session và transaction. Cách để những công cụ relational database (SQL server) thực hiện bằng việc thực thi bắt buộc những primary key và foreign key.
Tại SQL Server, người dùng sẽ không có cơ hội để thực thi tính toàn vẹn tham chiếu bảng bằng foreign key nếu những bảng này thuộc database hoặc server khác nhau. Lúc này, cách duy nhất để xử lý chính là dùng đến trigger trong sql.
Vậy Trigger được dùng khi nào? Chúng thường được dùng khi cần kiểm tra bắt buộc trên nhiều bảng hoặc nhiều dòng của bảng. Bên cạnh đó, sử dụng Trigger còn giúp những chương trình đang có hàm chạy ngầm. Việc này phục vụ cho những trường hợp hữu hạn. Thông thường sẽ không được sử dụng cho những mục đích khác như kinh doanh hoặc giao dịch. Điều này thật sự quan trọng bởi chúng sẽ ngăn chặn việc những dữ liệu bảo mật, quan trọng bị xóa mất.
Để có thể đánh giá trigger trong sql một cách cụ thể hơn, cần có một cái nhìn chi tiết về những ưu điểm và nhược điểm.
Những ưu điểm của Trigger nổi bật phải nhắc đến:
Bên cạnh những ưu điểm vượt trội, Trigger vẫn có những hạn chế nhất định mà bạn cần phải biết:
Vậy làm sao để tạo trigger trong sql, viết trigger trong sql? Bạn có thể xem công thức và ví dụ cụ thể ngay dưới đây để biết cách làm.
Để tiến hành tạo bảng ghi, câu lệnh CREATE TABLE sẽ được đặt tên production.product_audits. Chúng được sử dụng để ghi lại những thông tin khi INSERT hoặc DELETE xuất hiện sự kiện với table = production.products
Bảng production.product_audits sẽ xuất hiện những cột từ bảng production.products. Cùng với đó, chúng còn có thêm những cột được sử dụng để ghi lại các thay đổi. Ví dụ điển hình là
updated_at, operation và change_id.
Bạn tiến hành kiểm tra trigger bằng cách chèn câu lệnh dưới đây vào hàng mới trong production.products:
Sau đó, xem lại nội dung của bảng production.product_audits:
(SELECT
*
FROM
production.product_audits;)
>>> Xem thêm: OS là gì? Tìm hiểu về hệ điều hành (Operating System) từ A-Z
Lệnh DROP TRIGGER được dùng để xóa trigger trong sql. Cú pháp cụ thể là:
Những bài viết liên quan:
Bài viết trên của FPT Cloud cung cấp cho bạn những thông tin và kiến thức về trigger trong SQL. Mặc dù việc dùng trigger không phải là yêu cầu bắt buộc nhưng chúng vẫn thường được dùng trong nhiều mục đích riêng khác nhau. Mong rằng bài viết đã thật sự mang lại cho bạn những thông tin bổ ích.
Cookie | Thời gian | Mô tả |
---|---|---|
cookielawinfo-checbox-analytics | 11 Tháng | |
cookielawinfo-checbox-functional | 11 Tháng | |
cookielawinfo-checbox-others | 11 Tháng | |
cookielawinfo-checkbox-necessary | 11 Tháng | |
cookielawinfo-checkbox-performance | 11 Tháng | |
viewed_cookie_policy | 11 Tháng |