最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL觸發(fā)器之判斷更新操作前后數(shù)據(jù)是否改變

 更新時間:2023年08月30日 09:53:11   作者:夢想路上的小菜鳥  
這篇文章主要介紹了MySQL觸發(fā)器之判斷更新操作前后數(shù)據(jù)是否改變方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL觸發(fā)器判斷更新操作前后數(shù)據(jù)是否改變

改動表為user , 改動后將部分信息寫入cfq_tab表

1. 新增觸發(fā)器

create TRIGGER cfq_on_user_add
after insert on user
for each ROW
BEGIN
?insert into cfq_tab(id,type_id,type,status) values (null,new.UID,1,0);
end;

2. 修改觸發(fā)器

判斷修改前后數(shù)據(jù)是否變動

//DROP TRIGGER IF EXISTS cfq_on_user_edit
create TRIGGER cfq_on_user_edit
after update on user
for each ROW
BEGIN
if new.USER_NAME <>old.USER_NAME or new.DEPT_ID <> old.DEPT_ID then
?insert into cfq_tab(id,type_id,type,status) values (null,new.UID,2,0);
end if;
end;

MySQL觸發(fā)器(同步表數(shù)據(jù)增刪改)

起因

開發(fā)過程中偶爾會出現(xiàn)一種場景,兩個不同服務(wù)間的數(shù)據(jù)庫表格內(nèi)容需要保持一致。

由于要保持服務(wù)本身的獨(dú)立性,不太適合使用同一個數(shù)據(jù)庫。

這個時候可以考慮同步數(shù)據(jù)庫內(nèi)容。

觸發(fā)器恰好可以起到這樣的作用,只要寫增、刪、改三個觸發(fā)器便可。

觸發(fā)器只需寫在源表內(nèi),可將更新同步至目標(biāo)表。

語法

DELIMITER $
create trigger <觸發(fā)器名> after <操作名(insert、delete、update)> on <源表名> for each row
begin
<sql語句>
END $;
DELIMITER ;

增加(insert)

在觸發(fā)器里面有兩個關(guān)鍵字 old和new,在insert操作的時候我們使用的是new

DELIMITER $
create trigger user_insert after insert on upms_user for each row
begin
INSERT INTO `storage`.upms_user(id,username,create_time,creator,update_time,updater) 
VALUES(new.id,new.username,new.create_time,new.creator,new.update_time,new.updater);
END $;
DELIMITER ;

刪除(delete)

在where條件語句中我們需要使用的是關(guān)鍵字old

DELIMITER $
CREATE TRIGGER user_delete AFTER DELETE ON upms_user FOR EACH ROW
BEGIN
DELETE FROM `storage`.upms_user WHERE id=old.id;
END $;
DELIMITER ;

更新(update)

此處要注意的是,我們在字段賦值時使用的時new,在where條件中使用的old。

DELIMITER $
CREATE TRIGGER user_update AFTER UPDATE ON upms_user FOR EACH ROW
BEGIN
UPDATE `storage`.upms_user SET username=new.username,create_time=new.create_time,creator=new.creator,
update_time=new.update_time,updater=new.updater where id=old.id;
END $;
DELIMITER ;

navicat創(chuàng)建觸發(fā)器示例

右擊需要數(shù)據(jù)源表格,選擇設(shè)計(jì)表->觸發(fā)器,輸入觸發(fā)器名稱,觸發(fā)方式(After、Before),觸發(fā)操作(insert、delete、update),然后在下方定義處寫對應(yīng)的操作即可

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

洛阳市| 西丰县| 荥阳市| 乐昌市| 剑阁县| 扎赉特旗| 灵山县| 从江县| 本溪| 霞浦县| 启东市| 岑巩县| 吉水县| 扎兰屯市| 贡觉县| 合肥市| 聂拉木县| 昆明市| 聊城市| 安多县| 巩留县| 潜山县| 五指山市| 茂名市| 黄冈市| 沂源县| 丹江口市| 荆门市| 禹州市| 北安市| 阿合奇县| 福鼎市| 光山县| 南城县| 凭祥市| 甘德县| 阳高县| 中方县| 姜堰市| 化德县| 全南县|