您好,登錄后才能下訂單哦!
建立一個觸發器,實現在刪除一個表格時,自動把刪除的數據保存到一張備份表中,并加上刪除時間:
建立備份表:
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
建立觸發器:
DROP TRIGGER prod_delete; --刪除觸發器prod_delete,如果存在.要修改觸發器只能刪除重建;
DELIMITER $$ --重定義語名結束符;
CREATE TRIGGER prod_delete --觸發器為prod_delete;
BEFORE DELETE ON products --在刪除products表內容前生效
FOR EACH ROW --針對所有刪除的行
BEGIN --開始觸發器內容
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; --觸發器內空結束
$$ --重定義語名結束符;
DELIMITER ; --重新定義語名結束符;
MSSQL:
當更新物料庫存時,自動更新BOM分錄表的即時庫存欄:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create TRIGGER ICInventory_update --建立ICInventory_update 觸發器,用alter進行修改
ON ICInventory --建立在庫存表上
AFTER update --作用于庫存更新后
AS
begin --開始執行動作
update ICBOMChild set FEntrySelfZ0142=Inserted.fqty from Inserted where ICBOMChild.FItemID=Inserted.FItemID and inserted.FStockID='4435'
end --結束
GO --運行
MYSQL 和MSSQL的臨時表和格式不同,mysql 只有更新數據的 new 表 和刪除數據的 old 表,MSSQL的更新表則名為Inserted,存放刪除數據的臨時表則名為deleted 。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。