回覆列表
  • 1 # 使用者4469785837472

    after和before的區別: after是先完成資料的增刪改,再觸發,觸發的語句晚於監視的增刪改操作,無法影響前面的增刪改動作;也就是說先插入訂單記錄,再更新商品的數量; before是先完成觸發,再增刪改,觸發的語句先於監視的增刪改,我們就有機會判斷,修改即將發生的操作; 我們用一個典型案例來區分它們的區別,新建一個觸發器: #監視地點: 商品表o #監視事件:insert #觸發時間:before #觸發事件:update 案例:當新增一條訂單記錄時,判斷訂單的商品數量,如果數量大於10,就預設改為10 create trigger tg6 before insert on o for each row begin   if new.much > 10 then     set new.much = 10;   end if;   update g set num = num - new.much where id = new.gid; end$ 執行完,把之前建立的after觸發器刪掉,再來插入一條訂單記錄: insert into o(gid,much) valus(1,20)$ 執行完會發現訂單記錄的數量變為10,商品1的數量變為0了,就不會出現負數了。

  • 中秋節和大豐收的關聯?
  • 二婚,丈母孃問我有什麼要求,怎麼回答好?