1. 程式人生 > >mysql觸發器不起作用 navicat的bug?

mysql觸發器不起作用 navicat的bug?

如果想插入資料,先設定主鍵,再依次設定其他屬性值的時候,在你輸入完主鍵,navicat執行insert操作

當你輸入其他的時候,語句就變成了update,當然這期間沒有點儲存。所以寫的觸發器就一直失效。這是一個插入後生效的觸發器。(因為一直在執行update操作)


如果你不設定主鍵,再依次設定其他屬性值的時候,就會是insert操作,如下圖。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


再說說同一個條件寫觸發器,觸發多個操作:

觸發器內容:

#type =2 全場競猜 對應 flow 表中的type = 2 消費 category = 51 競猜支出
Begin
#獲取字典表的下注標識A or B
SET @a_describe  =(select a_describe from g_guess_describe where dict_id = new.dict_id);
if 
new.category = 2 then
#插入流水
insert into c_u_f_order_flow(flow_id, cuuid,type,category, order_id, coins, create_time)  values(null,new.cuuid,2,51,new.order_id,new.price,NOW());
#更新參與人數
 UPDATE g_guess_info SET join_count = join_count +1 WHERE guess_id = new.guess_id;
 
#更新獎金池數量
    if new.winning_team = @a_describe  then
    UPDATE g_guess_info SET a_bonus_pool =a_bonus_pool +new.price WHERE guess_id = new.guess_id;
     else 
     UPDATE g_guess_info SET b_bonus_pool =b_bonus_pool +new.price WHERE guess_id = new.guess_id;
   end if;
end if; 
end