您好,登錄后才能下訂單哦!
建立一個觸發(fā)器,實現(xiàn)在刪除一個表格時,自動把刪除的數(shù)據(jù)保存到一張備份表中,并加上刪除時間:
建立備份表:
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
建立觸發(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 。
免責(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)容。