banner-news

Trong bài này

    Trigger là gì? Ý nghĩa của Trigger trong SQL là gì

    18/05/2023

    Trigger là một thủ tục quan trọng trong SQL, cho phép tự động thực thi khi xảy ra một sự kiện nào đó. Tuy nhiên, cụ thể thì Trigger là gì? Có những loại Trigger nào và được dùng trong trường hợp nào? Nhìn chung, trong hệ quản trị cơ sở dữ liệu quan hệ, Trigger là một công cụ mạnh mẽ giúp tiết kiệm rất nhiều công sức cho doanh nghiệp, chúng ta không cần phải thao tác thủ công quá nhiều như trước đó. Trong bài viết dưới đây, cùng tìm hiểu chi tiết về Trigger là gì, các ưu điểm cũng như trường hợp cần dùng của chúng.

    Trigger trong SQL là gì?

    Trigger là một thủ tục trong SQL, chúng được thực thi trên Server khi xảy ra bất kỳ sự kiện nào, chẳng hạn như xóa, chèn hoặc cập nhật. Ngoài ra, trong SQL thì Trigger cũng có thể hiểu là một dạng Stored Procedure đặc biệt, vì trigger này không có tham số và chúng được thực thi tự động nếu có sự kiện nào đó xảy ra, khiến thay đổi dữ liệu. 

    Giải thích một số cú pháp chính liên quan đến Trigger:

    1. Create trigger [trigger_name]: Khởi tạo hoặc thay thế Trigger hiện tại thành Trigger_name.
    2. [before | after]: Lệnh này được dùng để chỉ định thời gian khi nào thực thi Trigger.
    3. {insert | update | delete}: Chỉ định hoạt động của DML.
    4. On [table_name]: Chỉ định tên của bảng được liên kết với trigger.
    5. [for each row]: Chỉ định trigger ở level thấp, nghĩa là trigger sẽ được thực thi cho từng hàng bị ảnh hưởng.
    6. [trigger_body]: Cung cấp các thao tác được thực thi khi bật trigger.

    Trường hợp sử dụng SQL Trigger

    Trigger trong SQL có thể được dùng trong các trường hợp như:

    • Dùng Trigger trong SQL để kiểm tra tính ràng buộc của các quan hệ với nhau, hoặc là kiểm tra mối tương quan giữa các bảng khác nhau hoặc các dòng khác nhau trên cùng một bảng.
    • Dùng Trigger trong SQL để ngăn chặn việc lỡ tay hoặc cố tình xóa các tập tin dữ liệu quan trọng.
    • Trigger có thể dùng dể tận dụng các hàm đang chạy ẩn dưới nền, nhằm mục tiêu phục vụ một vài nhu cầu cụ thể của người dùng.

    Các loại Trigger trong SQL Server

    Hiện nay, trong SQL Server có 3 loại Trigger cơ bản như sau:

    1. DDL Triggers

    DDL là viết tắt của The Data Definition Language. Khi có các sự kiện như Create_table, Create_view, drop_table, Drop_view, và Alter_table xảy ra thì DDL Triggers sẽ được kích hoạt, thực thi hành động.

    Ví dụ: Trên SQL Server có dòng lệnh sau:

          create tigger safety
          on database
          for
          create_table,alter_table,drop_table
          as
          print 'you can not create,drop and alter tab

    Sau khi chạy lệnh, output đầu ra chúng ta nhận được sẽ là dòng chữ “You can not create, drop and alter table in this database”.

    2. DML Triggers

    DML là viết tắt của The Data uses manipulation Language. Khi có các sự kiện như chèn, cập nhật hoặc xóa các DML trigger, tương ứng với insert_table, update_view, and delete_table thì Trigger này sẽ tự động kích hoạt.

    Ví dụ: Trên SQL Server có dòng lệnh sau:

          create trigger deep 
          on emp
          for
          insert,update ,delete
          as 
          print 'you can not insert,update and delete this table i'
          rollback;

    Sau khi chạy lệnh, output đầu ra chúng ta nhận được sẽ là dòng chữ “You can not insert, update and delete this table”.

    3. Logon Triggers

    Logon Triggers là một tập tin được dùng để phản hồi lại các sự kiện đăng nhập trên hệ thống. Khi một người dùng được tạo ra bằng phiên bản SQL Server, thì sự kiện Logon sẽ diễn ra sau quá trình xác thực ghi nhật ký kết thúc, nhưng trước quá trình thiết lập phiên người dùng.

    Do đó, các thông báo về câu lệnh Print và tất cả các lỗi liên quan đến Triggers đều sẽ được hiển thị trong nhật ký ghi lỗi của hệ quản trị SQL Server. Các lỗi liên quan đến xác thực sẽ ngăn không cho Logon Triggers được sử dụng. Các Trigger này thường được dùng nhằm mục đích theo dõi các hoạt động đăng nhập hoặc đặt giới hạn về số lượng phiên đăng nhập.

    Ưu điểm của Trigger 

    Một số ưu điểm nổi bật của Trigger có thể kể đến bao gồm:

    • Các quy tắc của đối tượng trong cơ sở dữ liệu được cấu hình bởi Trigger. Do đó, việc thay đổi sẽ bị hoàn tác nếu chúng không phù hợp.
    • Trigger hỗ trợ việc kiểm tra dữ liệu và thực hiện các thay đổi khi cần.
    • Trigger giúp thực thi tính toàn vẹn dữ liệu tối ưu hơn.
    • Khi sử dụng Trigger trước khi chèn hoặc cập nhật dữ liệu, các dữ liệu này sẽ được xác thực an toàn.
    • Trigger hỗ trợ người dùng trong việc duy trì nhật ký hồ sơ (records log).
    • Khi sử dụng Trigger, chúng ta không cần phải biên dịch dòng lệnh mỗi khi chạy, nhờ vào đó giúp cải thiện hiệu suất của các truy vấn SQL, mang lại tốc độ nhanh chóng và tối ưu hơn.
    • Phần lập trình trên máy khách được giảm bớt đáng kể thông qua các Trigger, từ đó giúp tiết kiệm thời gian và chi phí nhân sự đáng kể.
    • Việc bảo trì Trigger rất đơn giản, dễ thực hiện.

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

    Tuy nhiên, ngoài các ưu điểm nổi bật trên thì Trigger cũng có những nhược điểm nhất định mà doanh nghiệp cần lưu ý:

    • Chỉ các Trigger mới hỗ trợ việc sử dụng các tính năng xác nhận mở rộng (extended validations).
    • Hệ thống sẽ tự động sử dụng Trigger và người dùng không biết khi nào các hành động được thực thi. Do đó, việc khắc phục sự cố phát sinh trong lớp cơ sở dữ liệu là rất khó và phức tạp.
    • Chi phí để duy trì và sử dụng máy chủ cơ sở dữ liệu có thể tăng cao hơn nếu doanh nghiệp lựa chọn sử dụng thêm Trigger.
    • Trong câu lệnh CREATE TRIGGER duy nhất, chúng ta chỉ có thể chỉ định cùng một hành động Trigger cho nhiều hành động của người dùng, chẳng hạn như Trigger chèn hoặc Trigger cập nhật.
    • Chỉ có các hệ thống cơ sở dữ liệu hiện tại mới hỗ trợ việc tạo Trigger, nhưng chúng vẫn có thể tạo thêm các tham chiếu đến những đối tượng được lưu bên ngoài hệ thống cơ sở dữ liệu.

    Trên đây là toàn bộ các thông tin chi tiết về khái niệm Trigger là gì, các ưu nhược điểm, tính năng cũng như các loại Trigger phổ biến nhất. Hy vọng bài viết đã cung cấp các thông tin hữu ích cho bạn, giúp việc học và sử dụng SQL được hiệu quả hơn. Mời bạn tiếp tục theo dõi Blog tại CMC Cloud để cập nhật thêm các kiến thức công nghệ khác.

    CMC Cloud - Giải pháp Điện toán đám mây Toàn diện & Linh hoạt nhất. Cho phép tùy biến sử dụng và quản trị 25+ dịch vụ

    content-banner
    News Detail - Footer Email MKT

    Đăng ký nhận thông tin

    Bạn muốn cập nhật thông tin mới nhất từ CMC Cloud?! Hãy để lại địa chỉ email của bạn ngay để nhận những bản tin bổ ích

    back to top

    logo

    © 2023, CMC Cloud. All rights reserved.

    Business Registration Certificate

    Giấy ĐKKD: 0102900049. Nơi cấp: Sở Kế hoạch & Đầu tư Thành phố Hà Nội

    Chịu trách nhiệm nội dung: Đặng Tùng Sơn