【发布时间】:2017-11-04 07:11:55
【问题描述】:
我必须使用一个触发器来更新插入的行。以下是我的触发器。
DELIMITER $$
USE `kikan_db`$$
CREATE TRIGGER `t_trigger` AFTER INSERT ON `t_order`
FOR EACH ROW BEGIN
Declare kb_rate int;
Declare kb_amount int;
REPLACE INTO t_order_sales_month
SET order_no = NEW.order_no,
search_sales_month = getSalesMonth(NEW.order_no);
SELECT kickback_rate INTO kb_rate from m_customer where customer_code = New.bill_customer_code;
SET kb_amount := 9999 / kb_rate;
UPDATE `t_order` SET `t_order`.kickback_amount = kb_amount where `t_order`.order_no = NEW.order_no;
END;
$$
DELIMITER ;
更新时出错。
我必须使用AFTER 而不是BEFORE 类型的触发器
【问题讨论】:
-
您不能操作启动触发器的表,也不能更改新表。后触发器中的值。
-
有什么解决办法吗?
-
也许您可以计算插入 t_order 的回扣(贿赂?)。插入是什么样的 - 是在带有值子句的插入处还是带有选择子句的插入处?
-
插入一个值子句
-
我只能用触发器来做。客户的要求
标签: mysql sql database triggers