mysql觸發(fā)器中監(jiān)控字段的改變方式
mysql觸發(fā)器中監(jiān)控字段的改變
mysql的觸發(fā)器分為多種,INSERT或UPDATE或DELETE觸發(fā)器
比如使用UPDATE觸發(fā)器的時(shí)候,是整條數(shù)據(jù)改變后就會觸發(fā)
那么檢測單個(gè)字段的改變,
可以有如下寫法:
if NEW.nor_price <> OLD.nor_price then ?? ? update `dst_111yao_doms`.`d_price_upt` set price = NEW.nor_price , `status` = '0' , createtime = now()? ?? ? where olshopid = NEW.olshopid and tfid = NEW.pfid and warecode = NEW.outter_id and skuid = NEW.sku; end if;
當(dāng)一條數(shù)據(jù)觸發(fā)了觸發(fā)器后,判定NEW字段和OLD字段是否相等,如果不相等,那么就監(jiān)控到了該字段的改變
mysql觸發(fā)器怎么寫?
一個(gè)項(xiàng)目涉及到MySQL觸發(fā)器的應(yīng)用 以前沒怎么接觸過 就百度了一下 結(jié)果吧 考下來基本用不了 看來還是得自己動(dòng)手
我們不去看別的 看我的就行 這個(gè)方法比較簡單 直接phpmyadmin里點(diǎn)擊觸發(fā)器 然后填上該填的
比如你監(jiān)控a表的b字段那么選擇的表就是a,然后想控制a表b字段有更新的時(shí)候 把傳入更新的值乘以7保存到表里 就是你原本是程序傳給B的值是1 想實(shí)現(xiàn)存表中的值是它的7倍 我們看看代碼應(yīng)該怎么寫
after和before怎么選?涉及到值修改的都是before after只能取值 不能修改
代碼:
begin set new.b=new.b * 7; //這里還可以寫SQL語句 需要注意的是當(dāng)前表請使用上方set語句無需使用SQL語句,非當(dāng)前表使用SQL語句 new.*代表當(dāng)前準(zhǔn)備寫入的值 old.*代表該字段的原有值 end
是不是很簡單呢?
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql5.7中使用group concat函數(shù)數(shù)據(jù)被截?cái)嗟膯栴}完美解決方法
前幾天在項(xiàng)目中遇到一個(gè)問題,使用 GROUP_CONCAT 函數(shù)select出來的數(shù)據(jù)被截?cái)嗔?,最長長度不超過1024字節(jié),開始還以為是navicat客戶端自身對字段長度做了限制的問題。后來查找出原因,解決方法大家跟隨腳本之家小編一起看看吧2018-03-03
一步步帶你學(xué)習(xí)設(shè)計(jì)MySQL索引數(shù)據(jù)結(jié)構(gòu)
索引是存儲索引用于快速找到數(shù)據(jù)記錄的一種數(shù)據(jù)結(jié)構(gòu),就好比一本書的目錄部分,通過目錄中對應(yīng)的文章的頁碼,便可以快速定位到需要的文章,下面這篇文章主要給大家介紹了關(guān)于MySQL索引數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2022-11-11
MYSQL時(shí)區(qū)導(dǎo)致時(shí)間差了14或13小時(shí)的解決方法
本文主要介紹了MYSQL時(shí)區(qū)導(dǎo)致時(shí)間差了14或13小時(shí)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
解決MySql版本問題sql_mode=only_full_group_by
這篇文章主要介紹了解決MySql版本問題sql_mode=only_full_group_by,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
MYSQL使用.frm恢復(fù)數(shù)據(jù)表結(jié)構(gòu)的實(shí)現(xiàn)方法
在這里我們探討使用.frm文件恢復(fù)數(shù)據(jù)表機(jī)構(gòu)(當(dāng)然如果你以前備份過數(shù)據(jù)表,你可以使用調(diào)用備份的數(shù)據(jù)表)2010-02-02

