日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql触发器对同一张表做操作_MySql 触发器对同表操作

發(fā)布時(shí)間:2025/3/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql触发器对同一张表做操作_MySql 触发器对同表操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

觸發(fā)器初始結(jié)構(gòu):

DELIMITER $$

CREATE

TRIGGER `數(shù)據(jù)庫名`.`觸發(fā)器名` BEFORE/AFTER INSERT/UPDATE/DELETE

ON `數(shù)據(jù)庫名`.`表名`

FOR EACH ROW BEGIN

-- 邏輯、條件語句

END$$

DELIMITER ;

目的:當(dāng)一張表中的某個(gè)字段值更新為特定值時(shí),觸發(fā)更新本條數(shù)據(jù)的另一字段值

( 示例:根據(jù) prj_base_info 表中的 project_status 的值判斷是否是600時(shí),觸發(fā)更新同表的 complete_time 字段的時(shí)間為系統(tǒng)當(dāng)前時(shí)間 )

開始寫出的觸發(fā)器如下所示

DROP TRIGGER IF EXISTS update_complete_time;

DELIMITER $

CREATE TRIGGER update_complete_time AFTER UPDATE

ON prj_base_info FOR EACH ROW

BEGIN

IF (new.project_status=600)

THEN

UPDATE prj_base_info

SET complete_time =DATE_FORMAT(NOW(), '%Y-%m-%d')

WHERE prj_base_info.id = new.id;

END IF;

END $

執(zhí)行結(jié)果沒有問題,創(chuàng)建觸發(fā)器成功,但是執(zhí)行 update 語句進(jìn)行測試如下報(bào)錯(cuò),提示:無法更新存儲函數(shù)/觸發(fā)器中的表 'prj_base_info',因?yàn)樗呀?jīng)被調(diào)用此存儲函數(shù)/觸發(fā)器的語句使用。

1 queries executed, 0 success, 1 errors, 0 warnings

查詢:update prj_base_info set type=2,project_status=600 where id='1537842899333'

錯(cuò)誤代碼: 1442

Can't update table 'prj_base_info' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

通過查閱資料了解,同表的更新不能在觸發(fā)器里使用 update,而是直接使用set

修改為:

DROP TRIGGER IF EXISTS update_complete_time;

DELIMITER $

CREATE TRIGGER update_complete_time AFTER UPDATE

ON prj_base_info FOR EACH ROW

BEGIN

IF (new.project_status=600)

THEN

SET new.complete_time =DATE_FORMAT(NOW(), '%Y-%m-%d')

;

END IF;

END $

結(jié)果發(fā)現(xiàn)還報(bào)錯(cuò)。。。

錯(cuò)誤代碼: 1362

Updating of NEW row is not allowed in after trigger

把 AFTER 修改為BEFORE即可:

DROP TRIGGER IF EXISTS update_complete_time;

DELIMITER $

CREATE TRIGGER update_complete_time BEFORE UPDATE

ON prj_base_info FOR EACH ROW

BEGIN

IF (new.project_status=600)

THEN

SET new.complete_time =DATE_FORMAT(NOW(), '%Y-%m-%d')

;

END IF;

END $

BEFORE 與 AFTER 區(qū)別:

BEFORE:( insert、update )可以對 new 進(jìn)行修改,AFTER 不能對 new 進(jìn)行修改,兩者都不能修改 old 數(shù)據(jù)。

對于 INSERT 語句, 只有 NEW 是合法的;

對于 DELETE 語句,只有 OLD 才合法;

對于 UPDATE 語句,NEW、OLD 可以同時(shí)使用。

總結(jié):BEFORE 或 AFTER 關(guān)鍵字決定何時(shí)執(zhí)行觸發(fā)器動作,決定是在關(guān)聯(lián)行的插入、修改或刪除之前或者之后執(zhí)行觸發(fā)器動作。

總結(jié)

以上是生活随笔為你收集整理的mysql触发器对同一张表做操作_MySql 触发器对同表操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91在线观看免费高清完整版在线观看 | 亚洲精品888| 中文字幕专区 | 国产精品视频一区二区三区在3 | 操比网站 | 国产真实夫妇交换视频 | 成人在线观看网 | 91欧美在线视频 | 日本三级吹潮 | 亚洲av无码一区二区乱子仑 | 哺乳期喷奶水丰满少妇 | 黄色一级带 | 色婷婷91 | 秋霞99 | 成人免费国产 | 国产女同91疯狂高潮互磨 | 免费观看的黄色网址 | 成人影视网址 | 宅男噜噜噜666在线观看 | 91淫黄大片 | 国产午夜精品理论片 | 国产精品一区免费 | 日日夜夜中文字幕 | 欧美成人免费视频 | 亚洲人成人一区二区在线观看 | 2018天天操 | 日本网站免费观看 | 欧美日韩激情视频 | 成年人网站在线免费观看 | 亚洲国产成人一区二区精品区 | 国产亚洲精久久久久久无码苍井空 | 日韩电影第一页 | 精品国产丝袜一区二区三区乱码 | 天天插日日干 | 亚洲精品美女视频 | 国产精品久久二区 | 日本精品网| 在线看不卡av | 亚洲成人 av | 久久久久无码国产精品不卡 | 加勒比hezyo黑人专区 | 日韩成人精品一区二区三区 | 韩国女主播av | 抱着老师的嫩臀猛然挺进视频 | 女儿的朋友4在线观看 | 狠狠干青青草 | 进去里视频在线观看 | 能直接看的av网站 | 在线播放少妇奶水过盛 | 超碰免费看 | 欧美国产日本在线 | 婷婷色婷婷开心五月四房播播 | www在线免费观看 | 日本wwwxxxx| gav久久 | 国产精品一区二区三区免费 | 亚洲国产成人精品女人久久久 | 日产精品一区二区 | 亚洲免费黄色片 | 51热门大瓜今日大瓜 | 国产一级高清视频 | 国产第六页 | 午夜性| 欧美激情成人网 | 菲律宾av| 亚洲视频小说 | 国产又爽又黄无码无遮挡在线观看 | aaa国产| 久久影院一区 | 久久久精品欧美 | 91传媒入口| 不卡的在线视频 | 丁香久久综合 | 亚洲精品9 | 91精品一区二区三 | 免费看欧美大片 | 国产粉嫩在线 | 日韩影院在线 | a级一a一级在线观看 | 久久精品高清视频 | 播金莲一级淫片aaaaaaa | 在线视频黄| 国产成人免费观看视频 | 欧美精品系列 | 少妇一级淫片免费看 | 老妇高潮潮喷到猛进猛出 | 激情欧美综合 | 一区二区三区韩国 | 性开放淫合集 | 制服丝袜一区 | 欧美超碰在线观看 | 亚洲激情欧美激情 | 久久九九免费视频 | 成人欧美一区二区三区黑人孕妇 | 韩国毛片基地 | 天干夜夜爽爽日日日日 | 精品无码久久久久国产 | 久久久久久久亚洲av无码 | 久热这里只有精品在线 |