Ngày 18 · Trigger · BEFORE và AFTER

Một câu INSERT đi qua các trigger theo thứ tự nào

Thứ tự chạy trigger quanh một câu INSERT vào order_items Câu INSERT hai dòng vào order_items chạy BEFORE STATEMENT một lần, rồi với từng dòng chạy BEFORE ROW (điền unit_price, có thể sửa NEW) và ghi dòng kèm kiểm tra ràng buộc, sau khi ghi xong mọi dòng thì chạy AFTER ROW cho từng dòng (trừ tồn kho) và cuối cùng AFTER STATEMENT một lần; lỗi ở bất kỳ bước nào hủy cả câu lệnh. CÂU LỆNH INSERT INTO order_items (order_id, product_id, quantity) VALUES (41, 16, 2), (41, 22, 1); LẶP CHO TỪNG DÒNG SAU KHI GHI ĐỦ DÒNG BEFORE STATEMENT chạy 1 lần chưa có NEW BEFORE ROW điền unit_price NEW sửa được Ghi dòng NOT NULL, CHECK, PK giá trị cuối của NEW AFTER ROW trừ stock_quantity NEW chỉ đọc AFTER STATEMENT chạy 1 lần bảng chuyển tiếp Lỗi ở bất kỳ bước nào: RAISE EXCEPTION hoặc vi phạm ràng buộc cả câu INSERT bị hủy, kể cả phần kho đã trừ cho dòng trước BEFORE ROW trả về NEW thì dòng được ghi; trả về NULL thì dòng bị bỏ qua, không báo lỗi. © tiennhm