0
直接向前,我有触发器mysql中使用条件状态的问题。 有2个状态,如果状态是'客人',那么做一些事情,否则做另一件事。如果在mysql中有条件触发?
这里就是我已经做出:
CREATE TRIGGER `update-gain` AFTER INSERT ON `payment`
FOR EACH ROW BEGIN
declare v_profit integer;
declare v_deposit integer;
declare v_status CHAR;
select (status) into v_status from item where item.id_item=new.id_item;
select sum(profit_owner) into v_profit from payment where payment.id_item=new.id_item;
select sum(profit_guest) into v_deposit from payment where payment.id_item=new.id_item;
if v_status like 'guest' then
INSERT INTO gain
(gain.profit, gain.modal,gain.date)
VALUES
(v_profit,v_deposit,new.date)
ON DUPLICATE KEY UPDATE
gain.profit = gain.profit+new.profit_owner,
gain.modal = gain.deposit+new.profit_guest;
else
INSERT INTO gain
(gain.profit,gain.tanggal)
VALUES
(v_profit,new.tgl_stok)
ON DUPLICATE KEY UPDATE
gain.profit = gain.profit_owner+new.profit_owner;
end if;
END
到目前为止,我使用“喜欢”条款,但病情总是如此,甚至v_status不是“客人”。
我在这里做错了什么? 谢谢:)
你尝试'设置v_status = new.status'?我想你会在这里使用你的方法收到默认值。 – Psi
如果您发布表格和一些示例数据的结构将会很有用。 – wchiquito
那么,'收益'表没有'状态'字段。 @Psi。 – Dika