2017-07-30 64 views
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不是「客人」。

我在這裏做錯了什麼? 謝謝:)

+0

你嘗試'設置v_status = new.status'?我想你會在這裏使用你的方法收到默認值。 – Psi

+0

如果您發佈表格和一些示例數據的結構將會很有用。 – wchiquito

+0

那麼,'收益'表沒有'狀態'字段。 @Psi。 – Dika

回答

0

變化

if v_status like 'guest' then 

if v_status = 'guest' then 
+0

以前已經改變,但仍存在問題。總是遇到第一個條件條款 – Dika