TRIGGER trong SQL – TopDev

Chúng tôi rất vui được chia sẻ kiến thức sâu sắc về từ khóa TRIGGER trong SQL – TopDev. Bài viết trigger sql la gi tập trung giải thích ý nghĩa, vai trò và ứng dụng của từ khóa này trong tối ưu hóa nội dung web và chiến dịch tiếp thị. Chúng tôi cung cấp phương pháp tìm kiếm, phân tích từ khóa, kèm theo chiến lược và công cụ hữu ích. Hy vọng thông tin này sẽ giúp bạn xây dựng chiến lược thành công và thu hút người dùng.

Trigger trong SQL là gì?

Trigger là một thủ tục SQL được thực thi ở phía server khi có một sự kiện như Insert, Delete, hay cập nhật. Trigger là một loại stored procedure đặc biệt (không có tham số) được thực thi (execute) 1 cách tự động khi có một sự kiện thay đổi dữ liệu (data modification). Trigger được lưu trữ và quản lý trong Server DB, được dùng trong trường hợp ta muốn kiểm tra các ràng buộc toàn vẹn trong DB.

Bạn Đang Xem: TRIGGER trong SQL – TopDev

Trigger được sử dụng khi nào?

  • Trigger thường được sử dụng để kiểm tra ràng buộc (check constraints) trên nhiều quan hệ (nhiều bảng/table) hoặc trên nhiều dòng (nhiều record) của bảng.
  • Ngoài ra việc sử dụng Trigger để chương trình có những hàm chạy ngầm nhằm phục vụ nhưng trường hợp hữu hạn và thường không sử dụng cho mục đích kinh doanh thương mại Thương mại hoặc giao dịch.
  • ngăn chặn việc xóa những dữ liệu quan trọng. (có thể dùng back up các dữ liệu quan trọng sang table khác phòng khi …bị xóa ngoài ý muốn).
Xem Thêm  Khi quan hệ tinh dịch bị trào ra ngoài có thai không? – Galant Clinic

Ưu và nhược điểm của Trigger

Ưu điểm của Trigger

  • Trigger có thể bắt lỗi business logic ở mức csdl.
  • Có thể dùng trigger là một cách khác để thay thế việc thực hiện những công việc hẹn giờ theo lịch.
  • Trigger rất hiệu quả khi được sử dụng để kiểm soát những thay đổi của dữ liệu trong bảng.

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

  • Trigger chỉ là 1 phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này.
  • Trigger hoạt động ngầm ở trong csdl, không hiển thị ở tầng giao diện. Do đó, khó chỉ ra được điều gì xảy ra ở tầng csdl.
  • Trigger thực hiện các cập nhật lên bảng dữ liệu vì thế nó làm gia tăng lượng công việc lên csdl và làm cho hệ thống chạy chậm lại.

Cú pháp của Trigger

Để tạo một Trigger, bạn sử 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 tạo sau câu lệnh CREATE TRIGGER. Quy tắc đặt tên nên tuân theo nguyên tắc: [trigger time]_[table name]_[trigger event], ví dụ before_employees_update.
  • Thời gian Action : BEFORE hoặc AFTER. nên cần phải bổ dụng thời gian kích hoạc khi bạn xác định được tiến trình kích hoạt của nó. Sử dụng từ khóa BEFORE nếu bạn muốn xử lý hành động trước khi thực hiện thay đổi trên bản và AFTER nếu bạn cần phải xử lý hành động sau khi thay đổi được thực hiện xong.
  • Sự kiện gây ra có thể là INSERT, cập nhật, DELETE.
  • Trình kích hoạt phải được liên kết với một bảng cụ thể, sử dụng từ khóa ON để xác định.
  • Câu lệnh SQL phải được đặt giữa từ khóa BEGIN và END.
Xem Thêm  Phát triển lúa gạo theo hướng hiệu quả, bền lâu

Xem Thêm : Nóng: “Tiến sĩ Tâm lý” Dr.Peper nổi tiếng trên MXH bị `tố` lừa đảo

Ví dụ

Cung cấp Cơ sở dữ liệu giải trình Học sinh, trong đó đánh giá điểm của học sinh được ghi lại. Trong lược đồ như vậy, hãy tạo một Trigger để tính tổng số và trung bình của các bảng đã chỉ định được tự động chèn bất cứ khi nào một bản ghi được chèn.

Ở đây, vì trigger sẽ gọi trước khi bản ghi được chèn, nên có thể sử dụng thẻ BEFORE.

+-+-+-+-+-+-+ | Field | Type | Null | Key | Default | Extra | +-+-+-+-+-+-+ | tid | int(4) | NO | PRI | NULL | auto_increment | | name | varchar(30) | YES | | NULL | | | subj1 | int(2) | YES | | NULL | | | subj2 | int(2) | YES | | NULL | | | subj3 | int(2) | YES | | NULL | | | total | int(3) | YES | | NULL | | | per | int(3) | YES | | NULL | | +-+-+-+-+-+-+

Câu lệnh trigger SQL tới sự cố.

create trigger stud_marks before INSERT on Student for each row set Student.total = Student.subj1 + Student.subj2 + Student.subj3, Student.per = Student.total * 60 / 700;

Xem Thêm : Tuổi Mậu Ngọ 1978 xây nhà năm 2022 – Thảo Lương Home

Câu lệnh SQL trên sẽ tạo một trigger trong cơ sở dữ liệu sinh viên, trong đó bất cứ khi nào điểm môn học được nhập, trước khi chèn dữ liệu này &o cơ sở dữ liệu, trigger sẽ tính toán hai giá trị đó và chèn các giá trị đã nhập.

insert into Student values(0, “ABCDE”, 20, 20, 20, 0, 0); Query OK, 1 row affected (0.09 sec) select * from Student; +-+-+-+-+-+-+-+ | tid | name | subj1 | subj2 | subj3 | total | per | +-+-+-+-+-+-+-+ | 200 | ABCDE | 20 | 20 | 20 | 60 | 36 | +-+-+-+-+-+-+-+

Xem Thêm  Mã Zipcode Nghệ An – Mã bưu điện Nghệ An mới nhất

bằng cách này, trigger có thể được tạo và thực thi trong cơ sở dữ liệu.

Tìm việc làm SQL lương cao hấp dẫn cho bạn tại Topdev.

tham khảo:

  • SQL Injection là gì? Cách giảm thiểu và phòng ngừa
  • https://www.geeksforgeeks.org/sql-trigger-student-database/

 

Nguồn: https://kengencyclopedia.org
Danh mục: Hỏi Đáp

Recommended For You

About the Author: badmin

Leave a Reply

Your email address will not be published. Required fields are marked *