Mục lục [Ẩn]
Trigger trong sql là một thuật ngữ khá quen thuộc với dân quản trị server. Để mang đến cho mọi người một kiến thức mới. Thì sau đây, Nhân Hòa sẽ trình bày chi tiết về Trigger trong sql là gì? Cùng tìm hiểu về trigger update trong sql và cách xóa trigger trong sql.
1. Trigger trong sql là gì?
Trigger trong sql là một stored procedure không có tham số. Stored procedure là tổng hợp các câu lệnh Transact-SQL. Mỗi khi lập trình viên muốn dùng thì gọi ra và thực thi chứ không cần gõ lại câu lệnh.
Trigger trong sql thường được thực thi ở phía server khi có một sự kiện xảy ra. Ví dụ như Insert (thêm mới), Update (cập nhật) hoặc Delete (Xóa) dữ liệu. Trigger được lưu trữ trong server DB và dùng trong khi muốn kiểm tra các ràng buộc vẹn toàn trong DB.
2. Cấu trúc lệnh trigger trong sql
Cú pháp chung của trigger như sau
Ví dụ trigger trong sql
3. Phân loại trigger trong sql
3.1. DDL trigger
DDL Trigger (Data Definition Language) là loại trigger kích hoạt khi muốn thay đổi cấu trúc dữ liệu. Ví dụ như tạo mới, sửa đổi hay xóa bảng. Ngoài ra còn dùng khi thay đổi bảo mật hoặc cập nhật thống kê của các sự kiện liên quan đến server.
3.2. DML trigger
DML trigger (Data Modification Language) là loại trigger được dùng khi chèn, xóa, hoặc cập nhật một câu lệnh trên bảng. Đây là loại trigger được sử dụng nhiều nhất vì sự kiện kích hoạt thường là câu lệnh sửa đổi dữ liệu.
Trong DML trigger cũng chia ra hai loại
- instead of [insert, update, delete]: Dùng để thay thế câu lệnh kích hoạt. Hữu ích khi yêu cầu tính toàn vẹn tham chiếu dữ liệu
- for hoặc after [insert, update, delete]: Loại trigger được thực thi sau khi câu lệnh kích hoạt kết thúc.
4. Trigger trong sql dùng để làm gì?
Thứ nhất, trigger dùng để kiểm tra ràng buộc của nhiều bảng hoặc nhiều dòng trên cùng một bảng.
Điều này cực kỳ quan trọng vì sql server không có cơ hội thực thi tính toàn vẹn tham chiếu giữa hai bảng nếu hai bảng nằm trong cơ sở dữ liệu khác nhau, hoặc khác server. Việc này chỉ có thể thực hiện bằng cách dùng trigger trong sql server.
Thứ hai, trigger giúp ngăn chặn việc xóa các dữ liệu quan trọng. Vì có thể backup lại dữ liệu sang các bảng khác khi dữ liệu bị xóa ngoài ý muốn.
Xem thêm: Cách import sql vào phpAdmin [HƯỚNG DẪN CHI TIẾT]
5. Ưu và nhược điểm của trigger trong sql
5.1. Ưu điểm
- Việc viết code cho các trigger trong sql rất đơn giản. Chúng thường được mã hóa giống như các stored procedure
- Việc tạo audit cơ bản bằng trigger cũng rất đơn giản. Bạn có thể tự xây một giải pháp chèn dữ liệu bảng đã xóa vào một bảng kiểm tra dữ liệu bằng câu lệnh xóa trigger trong sql. Hoặc dung trigger update trong sql.
- Có thể tùy ý call các store procedure và hàm được lưu trữ trong trigger
- Trigger tiện ích hơn khi muốn xác thực dữ liệu được thêm mới hoặc cập nhật hàng loạt.
- Trigger trong sql server hữu ích khi muôn vận hành tính vẹn toàn tham chiếu trên cơ sở dữ liệu
- Trigger có thể lồng đến 32 lớp trigger khác nhau
5.2. Nhược điểm
- Với thao tác chèn dữ liệu vào bảng bulk insert, bạn bắt buộc tùy chọn fire triggers để đảm bảo tính nhất quán của dữ liệu.
- Việc xác định các trigger rất khó vì nó không thể nhìn thấy đối với client
- Khi dùng DML trigger thì câu lệnh chỉ kết thúc khi quá trình thực thi hoàn tất. Việc này tiềm ẩn rất nhiều rủi ro.
- Khi đã sử dụng trigger trong sql để kiểm tra thì chúng sẽ thực thi bất cứ khi nào có câu lệnh kích hoạt. Một số trường hợp thì việc này là không cần thiết.
- Nếu có nhiều trigger lồng vào nhau thì việc gỡ lỗi và khắc phục sự cố rất khó. Tiêu tốn nhiều tài nguyên và thời gian xử lý.
- Sử dụng trigger tiềm ẩn nhiều nguy cơ về bảo mật. Vì người dùng độc hại có thể thêm các cụm CLR trigger vào cơ sở dữ liệu để chiếm quyền kiểm soát server.
- Khi sử dụng trigger trong sql, hệ thống có thể bị chạy chậm lại
Xem thêm: Hướng dẫn cài MySQL chi tiết nhất
6. Lời kết
Ở bài viết trên Nhân Hòa đã trình bày chi tiết về trigger trong sql là gì. Cách sử dụng trigger trong sql cũng như ưu và nhược điểm của thủ thuật này. Việc này hữu ích để bạn quản trị server tốt hơn. Chúc bạn thành công.