Bài học theo mô-đun (4/4)
Các yếu tố kích hoạt và kiểm toán thực tế
Bây giờ chúng ta đã học cách rèn đạn thông minh (Chức năng kích hoạt), chúng ta cần gắn chúng lên Vũ khí Primed thực sự đang chờ một sự kiện: đây là Triggers thực sự! Trình kích hoạt chính thức gắn một hàm đã tạo trước đó và hướng dẫn nó kích hoạt "TRƯỚC" hoặc "SAU" một sự kiện CRUD cụ thể trên một bảng nhất định.
Có nhiều lựa chọn; ví dụ: FOR EACH ROW kích hoạt nó một lần trên mỗi hàng bị ảnh hưởng, vì vậy nếu một truy vấn hàng loạt là CẬP NHẬT TOÀN CẦU trên 5 triệu hàng, thì truy vấn đó sẽ kích hoạt 5 triệu lần thực thi vi mô — hãy cẩn thận với điều đó!
CREATE TRIGGER sync_inventory_trigger
-- Event options
AFTER INSERT OR UPDATE ON order_items
-- Modus operandi (singular or global macro-block FOR EACH STATEMENT)
FOR EACH ROW
-- Run the forged action
EXECUTE FUNCTION update_stock();Trình kích hoạt là vô hình đối với JavaScript và sẽ tự động giữ cho kho hàng hoàn toàn nhất quán dựa trên các bản cập nhật được gửi một cách an toàn đến công cụ.
Tự động cập nhật_Tại
Có một vấn đề thường gặp trong kinh doanh là chúng ta quên chuyển { updated_at: new Date() } trong các mô hình cập nhật JS của mình. Hàm kích hoạt set_updated_at kết hợp với trình kích hoạt BEFORE UPDATE sẽ loại bỏ mối phiền toái này, âm thầm cập nhật mọi thay đổi bản ghi một cách tự động.
Hãy tự mình thử
Tạo một trình kích hoạt có tên 'trg_force_uppercase'.\nĐính kèm nó trong giai đoạn 'TRƯỚC KHI CHÈN' trên bảng 'khách hàng'.\nBắt buộc tính toán theo từng hàng 'CHO MỖI HÀNG' và gọi việc thực thi hàm 'force_uppercase_name()'.\nLưu ý: cũng tạo lại UDF 'force_uppercase_name' (vì môi trường bị cô lập) ở đầu mã, sau đó nối thêm khai báo trình kích hoạt.
Hiển thị gợi ý
Cú pháp văn bản: tạo hàm trước, sau đó thêm TẠO TRIGGER trg_force_uppercase TRƯỚC KHI CHÈN VÀO khách hàng CHO MỖI HÀNG THỰC HIỆN CHỨC NĂNG Force_uppercase_name();
Giải pháp khả dụng sau 3 lần thử
Giết cảm biến! Đôi khi, chúng tôi muốn đẩy các tệp gốc thô hoặc các thay đổi gốc tạm thời đi qua, bỏ qua các bước kiểm tra ồn ào.\nViệc loại bỏ trình kích hoạt cực kỳ đơn giản (bạn không xóa chức năng tự nhiên mà chỉ xóa liên kết cảm biến).\nSử dụng từ khóa 'DROP TRIGGER', chỉ định tên và tệp đính kèm chung.
Hiển thị gợi ý
Hãy nhớ xác định từ đâu. DROP TRIGGER trg_force_uppercase TRÊN khách hàng;
Giải pháp khả dụng sau 3 lần thử