十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
1、先創(chuàng)建一個空的person_log表用來存放被刪除的記錄。
創(chuàng)新互聯(lián)建站從2013年開始,先為洋縣等服務(wù)建站,洋縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為洋縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
2、創(chuàng)建一個觸發(fā)器del_person,執(zhí)行刪除操作后將記錄插入到person_log表。
觸發(fā)器person_log
3、從person表中執(zhí)行刪除記錄操作來觸發(fā)事件
4、查看person_log表結(jié)果:
結(jié)果:從person表執(zhí)行刪除一條記錄后會觸發(fā)person_log表中增加被刪除的記錄。
navicat
for
mysql中如何添加delete觸發(fā)器
navicat
for
mysql
中,選中數(shù)據(jù)表—鼠標(biāo)右鍵—設(shè)計表,有一個觸發(fā)器的設(shè)置,然后:
設(shè)置一個觸發(fā)器名稱,觸發(fā)選擇after,勾中插入
在下面的框中:(僅是舉例)
begin
insert
into
transfer(id,a1,a2,cz,qtime)
values(new.id,values1,values2,'已點',new.ordertime)
end
方法/步驟
首先,我們需要確定自己的Mysql數(shù)據(jù)庫的版本,因為my sql數(shù)據(jù)庫是從5.0.2版本才開始支持觸發(fā)器的。
我推薦大家在電腦的dos命令界面中輸入 mysql --version,來獲取mysql的版本號,注意version的兩個橫線和之前的mysql是有一個空格的。
上一步獲取了我們的mysql版本號,這一不我們就開始建立觸發(fā)器了。我采用的以視圖加代碼的方式創(chuàng)建,我們在數(shù)據(jù)表中找到要執(zhí)行刪除操作的表,然后右鍵設(shè)計表
這樣我們就打開了表的設(shè)計頁面,可以看到有一個觸發(fā)器選項卡,我們點擊“觸發(fā)器”
可以看到對應(yīng)的選項,我們在名里面添加我們需要新建的觸發(fā)器的名字,在觸發(fā)選項中選擇before或者after,然后在插入、更新、刪除三個選項中勾選一個。
這樣我們就建立了一個名為“datri”的觸發(fā)器,在刪除操作執(zhí)行之后觸發(fā)
然后我們在下面的定義下面的框中輸入我們需要執(zhí)行的操作。然后點擊sql預(yù)覽,可以看到整個觸發(fā)器的代碼
最后就是保存了,由于我們做的是觸發(fā)器,保存之后,在執(zhí)行刪除操作時,這個觸發(fā)器才相當(dāng)于 被執(zhí)行。
使用Mysql新建觸發(fā)器的方法:
1、首先,需要確定自己的Mysql數(shù)據(jù)庫的版本,因為my sql數(shù)據(jù)庫是從5.0.2版本才開始支持觸發(fā)器的。
2、在電腦的dos命令界面中輸入 mysql --version,來獲取mysql的版本號,注意version的兩個橫線和之前的mysql是有一個空格的。
3、上一步獲取了mysql版本號,就開始建立觸發(fā)器。采用以視圖加代碼的方式創(chuàng)建,在數(shù)據(jù)表中找到要執(zhí)行刪除操作的表,然后右鍵設(shè)計表
4、這樣就打開了表的設(shè)計頁面,可以看到有一個觸發(fā)器選項卡,點擊“觸發(fā)器”
5、可以看到對應(yīng)的選項,在名里面添加需要新建的觸發(fā)器的名字,在觸發(fā)選項中選擇before或者after,然后在插入、更新、刪除三個選項中勾選一個。
6、這樣們就建立了一個名為“datri”的觸發(fā)器,在刪除操作執(zhí)行之后觸發(fā)
7、然后在下面的定義下面的框中輸入需要執(zhí)行的操作。然后點擊sql預(yù)覽,可以看到整個觸發(fā)器的代碼
8、最后就是保存了,由于做的是觸發(fā)器,保存之后,在執(zhí)行刪除操作時,這個觸發(fā)器才相當(dāng)于被執(zhí)行。
希望你自己寫 ,做2個觸發(fā)器,
第一個觸發(fā)后可以做對overtime插入操作,這里你沒說觸發(fā)類型????
Create Trigger '增加加班信息'
On overtime --在overtime表中創(chuàng)建觸發(fā)器
for ????? ----觸發(fā)的事件
As --事件觸發(fā)后所要做的事情
begin
insert INTO overtime(你要加的信息)
end
第二個 基于overtime 表的觸發(fā)update類的 更新加班信息
Create Trigger '修改考勤信息表'
On overtime --在overtime表中創(chuàng)建觸發(fā)器
for insert --觸發(fā)的事件
As --事件觸發(fā)后所要做的事情
if Update(某字段)
begin
Update attend
set 你做overtime的插入后 attend 應(yīng)該的變化
From attend ,Inserted i --Inserted臨時表
Where attend.emp_id =i.emp_id
end
做完之后 你插入幾次檢測下數(shù)據(jù),再寫上報錯和其它
mysql用觸發(fā)器禁止某條記錄的刪除、修改:
delimiter //
CREATE TRIGGER xx_company_agent_update? BEFORE UPDATE ON xx_company_agent
FOR EACH ROW
BEGIN
IF OLD.bank_card is not null THEN
SET NEW.bank_card = OLD.bank_card,NEW.money= OLD.money,NEW.real_money=OLD.real_money,NEW.bank_name=OLD.bank_name;
END IF;
END;//
delimiter ;
擴(kuò)展資料
mysql觸發(fā)器的使用
用戶記錄用戶的預(yù)期事件(schema是特殊用戶的數(shù)據(jù)庫對象集合。這些對象包括:表,索引,視圖,存儲程序等。在Oracle里, schema要求創(chuàng)建一個用戶。但是也可以創(chuàng)建一個沒有schema的用戶(根本沒有對象)。
所以在Oracle-中,用戶就是一個帳戶而schema就是對象。可能在其他的數(shù)據(jù)庫平臺上可以創(chuàng)建一個沒有用戶的schema。LOGOFF不能是AFTER LOGOFF,將會重新操作,這里應(yīng)該是BEFORE,否則就會報錯:替換可以插入不能有AFTER。創(chuàng)建或替換觸發(fā)器MYLOGOFFTRIGGER。
參考資料來源:百度百科—mySQL