[英]Update all fields to journal table after each update
我有這個觸發器來在每次更新后更新日記表中的單個字段,但是我需要一次更新日記中相關行中的所有列,而不是通過命名它們中的每一個並以逗號分隔,我該怎么做?
DELIMITER //
CREATE TRIGGER sfo_clone_update_subtotal_invoiced AFTER UPDATE ON sales_flat_order
FOR EACH ROW BEGIN
update sales_flat_order_journal set subtotal_invoiced=NEW.subtotal_invoiced where entity_id=new.entity_id;
END;
DELIMITER ;
UPDATE語法允許您設置多個列,並以逗號分隔。
update sales_flat_order_journal
set subtotal_invoiced = NEW.subtotal_invoiced,
other_column1 = NEW.other_column,
other_column2 = (/* constant expression, not based on NEW */),
other_column3 = (SELECT ...scalar expression from some other tables... LIMIT 1),
updated_at = NOW()
where entity_id = new.entity_id;
您可以訪問NEW.other_column
以獲取生成觸發器的同一行的值。
您可以在觸發器主體中聲明局部變量 ,以幫助計算復雜值。
您可以在觸發器主體中使用SELECT
語句從其他行或其他表中查詢值,只要您使用返回一行和一列的標量SELECT
。
如果您需要觸發器中很難完成的更復雜的更新,則可以在應用程序代碼中完成,而不是觸發器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.