是的,MySQL數據庫觸發器可以跨表操作。觸發器是與表事件(如INSERT、UPDATE或DELETE)相關聯的存儲過程,當事件發生時,觸發器會自動執行一些操作。觸發器可以訪問與觸發事件相關的數據,并且可以在同一個數據庫中的其他表上執行操作。
例如,假設你有兩個表:orders
和order_summary
。當你在orders
表中插入一條新記錄時,你可能希望更新order_summary
表以反映新的訂單數量和總金額。這就需要使用跨表操作。
以下是一個簡單的示例,展示了如何創建一個觸發器來實現這個功能:
DELIMITER //
CREATE TRIGGER update_order_summary
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE order_summary
SET total_orders = total_orders + 1,
total_amount = total_amount + NEW.amount
WHERE order_summary.id = 1;
END;
//
DELIMITER ;
在這個示例中,我們創建了一個名為update_order_summary
的觸發器,它在orders
表中插入新記錄后觸發。觸發器將更新order_summary
表,增加訂單數量和總金額。注意,我們使用了NEW
關鍵字來訪問與觸發事件相關的新記錄的數據。