2012-11-21 78 views
0

我不擅长在数据库触发器在使用MySql插入当前表时更新另一个表的触发器?

触发:

delimiter $$ 

    CREATE 
    DEFINER=`root`@`localhost` 
    TRIGGER `bon_apetite`.`orders_insert_update_trigger` 
    AFTER INSERT ON `bon_apetite`.`orders` 
    FOR EACH ROW 
    BEGIN 
    update budget_tracking set new.monthly_balance = old.monthly_balance + new.total_price 
    where tracking_userid = new.order_userid; 
    END 
    $$ 

表:

budget_tracking和订单

列:

budget_tracking(ID,budget_userid,monthly_balance ,created_date,modified_date)

订单(order_id,order_userid,total_price,created_date,modified_date)

budget_userid和order_userid是foriegn键到另一个表中的主键。

我想要的是当我将值插入到订单表中时,触发器应更新budget_tracking表的monthly_balance字段以及两个表的created_date和modified_date。

任何帮助将不胜感激!

回答

1

试试这个

BEGIN 
update budget_tracking set monthly_balance = monthly_balance + new.total_price 
where tracking_userid = new.order_userid; 
END 
+0

@aykuy谢谢!这是工作! – Newbie

+0

不客气@codebeginner – aykut

1

试试这个:

DELIMITER $$ 

CREATE DEFINER=`root`@`localhost` TRIGGER `bon_apetite`.`orders_insert_update_trigger` AFTER INSERT ON `bon_apetite`.`orders` FOR EACH ROW 
BEGIN 
UPDATE budget_tracking SET monthly_balance = monthly_balance + new.total_price 
WHERE tracking_userid = new.order_userid; 
END$$ 

DELIMITER ; 
+0

@SHAH谢谢!这是工作! – Newbie

相关问题