溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

觸發(fā)器確實好用

發(fā)布時間:2020-07-09 05:11:00 來源:網(wǎng)絡(luò) 閱讀:408 作者:筆下生輝 欄目:MySQL數(shù)據(jù)庫

MYSQL:

建立一個觸發(fā)器,實現(xiàn)在刪除一個表格時,自動把刪除的數(shù)據(jù)保存到一張備份表中,并加上刪除時間:

  1. 建立備份表:

     

    CREATE TABLE `products_` (

      prod_id    int(11)  NOT  NULL,

      vend_id    int(11)  NOT  NULL,

      prod_name   char(20),

      prod_price   int(11),

      prod_desc   char(50),

      del_time    datetime ,

      PRIMARY  KEY  (`prod_id`)

    ) ENGINE=InnoDB  DEFAULT  CHARSET=gbk

  2. 建立觸發(fā)器:

DROP  TRIGGER  prod_delete;          --刪除觸發(fā)器prod_delete,如果存在.要修改觸發(fā)器只能刪除重建;

DELIMITER  $$                     --重定義語名結(jié)束符;

CREATE  TRIGGER  prod_delete           --觸發(fā)器為prod_delete;

BEFORE   DELETE   ON  products          --在刪除products表內(nèi)容前生效

FOR  EACH  ROW                    --針對所有刪除的行

BEGIN                               --開始觸發(fā)器內(nèi)容

  INSERT  INTO  products_ (prod_id,vend_id,prod_name,prod_price,prod_desc,del_time) VALUES  (old.prod_id,old.vend_id,old.prod_name,old.prod_price,old.prod_desc,NOW());

 END;                             --觸發(fā)器內(nèi)空結(jié)束

 $$                          --重定義語名結(jié)束符;

DELIMITER ;                      --重新定義語名結(jié)束符;



MSSQL:

當(dāng)更新物料庫存時,自動更新BOM分錄表的即時庫存欄:


SET ANSI_NULLS ON

GO

SET  QUOTED_IDENTIFIER  ON

GO


create  TRIGGER  ICInventory_update                   --建立ICInventory_update 觸發(fā)器,用alter進(jìn)行修改

   ON  ICInventory                           --建立在庫存表上

   AFTER update                             --作用于庫存更新后

AS 

begin                                      --開始執(zhí)行動作

update  ICBOMChild  set  FEntrySelfZ0142=Inserted.fqty   from  Inserted where ICBOMChild.FItemID=Inserted.FItemID   and   inserted.FStockID='4435'

end                                       --結(jié)束

GO                                        --運行



MYSQL 和MSSQL的臨時表和格式不同,mysql 只有更新數(shù)據(jù)的 new 表 和刪除數(shù)據(jù)的 old 表,MSSQL的更新表則名為Inserted,存放刪除數(shù)據(jù)的臨時表則名為deleted 。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI