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

MySQL觸發(fā)器的使用詳解

 更新時(shí)間:2022年06月17日 08:54:57   作者:不斷前進(jìn)的皮卡丘  
觸發(fā)器trigger是一種特殊的存儲(chǔ)過程,他在插入(inset)、刪除(delete)或修改(update)特定表中的數(shù)據(jù)時(shí)觸發(fā)執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于MySQL觸發(fā)器使用的相關(guān)資料,需要的朋友可以參考下

1.為什么需要觸發(fā)器

有一些表是互相關(guān)聯(lián)的,比如說商品表和庫(kù)存表,我們對(duì)商品表的數(shù)據(jù)進(jìn)行操作,那么對(duì)應(yīng)的庫(kù)存表還得發(fā)生變化,這樣才可以保證數(shù)據(jù)的完整。如果我們是自己手動(dòng)維護(hù)的話,比較麻煩。

這個(gè)時(shí)候我們可以使用觸發(fā)器,創(chuàng)建一個(gè)觸發(fā)器,讓商品信息數(shù)據(jù)的插入操作自動(dòng)觸發(fā)庫(kù)存數(shù)據(jù)的插入操作等,這樣我們就不需要擔(dān)心因?yàn)橥浱砑訋?kù)存數(shù)據(jù)而導(dǎo)致數(shù)據(jù)丟失了。

2.觸發(fā)器概述

  • MySQL是從5.0.2版本開始支持觸發(fā)器的
  • MySQL的觸發(fā)器和存儲(chǔ)過程一樣都是嵌入到MySQL服務(wù)器的一段程序
  • 觸發(fā)器是由某一個(gè)事件來觸發(fā)某個(gè)操作,這些事件包括insert,delete,update事件
  • 若定義了觸發(fā)程序,那么數(shù)據(jù)庫(kù)執(zhí)行這些語(yǔ)句的時(shí)候,就相當(dāng)于事件發(fā)生,會(huì)自動(dòng)激發(fā)觸發(fā)器執(zhí)行相應(yīng)的操作
  • 如果對(duì)數(shù)據(jù)庫(kù)中的表的數(shù)據(jù)進(jìn)行插入等操作的時(shí)候,需要自動(dòng)執(zhí)行一些數(shù)據(jù)庫(kù)邏輯的時(shí)候,我們可以用觸發(fā)器來實(shí)現(xiàn)。

3.觸發(fā)器的創(chuàng)建

3.1語(yǔ)法

觸發(fā)器是作用在表上的,比如說我們希望表A新增一條記錄的時(shí)候就觸發(fā) 觸發(fā)器的執(zhí)行,而且還要選擇觸發(fā)器是在insert語(yǔ)句執(zhí)行之前執(zhí)行觸發(fā)器還是之后。

for each row表明,每執(zhí)行一次事件(insert,update或delete)就會(huì)觸發(fā)一次觸發(fā)器

CREATE TRIGGER 觸發(fā)器名稱 
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
FOR EACH ROW 
觸發(fā)器執(zhí)行的語(yǔ)句塊;

說明:

表名:表示觸發(fā)器監(jiān)控的對(duì)象。

BEFORE|AFTER:表示觸發(fā)的時(shí)間。BEFORE 表示在事件之前觸發(fā);AFTER 表示在事件之后觸發(fā)。

INSERT|UPDATE|DELETE:表示觸發(fā)的事件。

  • INSERT 表示插入記錄時(shí)觸發(fā);
  • UPDATE 表示更新記錄時(shí)觸發(fā);
  • DELETE 表示刪除記錄時(shí)觸發(fā)。

觸發(fā)器執(zhí)行的語(yǔ)句塊:可以是單條SQL語(yǔ)句,也可以是由BEGIN…END結(jié)構(gòu)組成的復(fù)合語(yǔ)句塊。

3.2 案例演示

先準(zhǔn)備表

CREATE TABLE test_trigger (
id INT PRIMARY KEY AUTO_INCREMENT,
t_note VARCHAR(30)
);


CREATE TABLE test_trigger_log (
id INT PRIMARY KEY AUTO_INCREMENT,
t_log VARCHAR(30)
);

要求:創(chuàng)建觸發(fā)器:創(chuàng)建名稱為before_insert的觸發(fā)器,向test_trigger數(shù)據(jù)表插入數(shù)據(jù)之前,向test_trigger_log數(shù)據(jù)表中插入before_insert的日志信息。

4.查看觸發(fā)器

查看觸發(fā)器是查看數(shù)據(jù)庫(kù)中已經(jīng)存在的觸發(fā)器的定義,狀態(tài)和語(yǔ)法信息等

方式一:查看當(dāng)前數(shù)據(jù)庫(kù)的所有觸發(fā)器的定義

show triggers\G 注意,在SQLyog中,不能加上\G

方式二:查看當(dāng)前數(shù)據(jù)庫(kù)中某一個(gè)觸發(fā)器的定義

show create trigger 觸發(fā)器名

方式三:從系統(tǒng)庫(kù)information_schema的TRIGGERS表中查詢“salary_check_trigger”觸發(fā)器的信息

SELECT * FROM information_schema.TRIGGERS;

5.刪除觸發(fā)器

觸發(fā)器也是數(shù)據(jù)庫(kù)對(duì)象,觸發(fā)器也是用drop語(yǔ)句來刪除

drop trigger if exists 觸發(fā)器名;

總結(jié)

到此這篇關(guān)于MySQL觸發(fā)器使用的文章就介紹到這了,更多相關(guān)MySQL觸發(fā)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql?InnoDB中B+樹索引使用注意事項(xiàng)

    Mysql?InnoDB中B+樹索引使用注意事項(xiàng)

    這篇文章主要為大家介紹了Mysql?InnoDB中B+樹索引的注意事項(xiàng),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • mysql查看死鎖與去除死鎖示例詳解

    mysql查看死鎖與去除死鎖示例詳解

    這篇文章主要給大家介紹了關(guān)于mysql查看死鎖與去除死鎖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Mysql讀寫分離過期常用解決方案

    Mysql讀寫分離過期常用解決方案

    這篇文章主要介紹了Mysql讀寫分離過期常用解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mysql建表與索引使用規(guī)范詳解

    Mysql建表與索引使用規(guī)范詳解

    本篇文章是對(duì)Mysql建表和索引使用規(guī)范進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • InnoDb 體系架構(gòu)和特性詳解 (Innodb存儲(chǔ)引擎讀書筆記總結(jié))

    InnoDb 體系架構(gòu)和特性詳解 (Innodb存儲(chǔ)引擎讀書筆記總結(jié))

    下面小編就為大家?guī)硪黄狪nnoDb 體系架構(gòu)和特性詳解 (Innodb存儲(chǔ)引擎讀書筆記總結(jié))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Windows10系統(tǒng)下MySQL(8.0.37)安裝與配置教程

    Windows10系統(tǒng)下MySQL(8.0.37)安裝與配置教程

    相信很多人都遇到過安裝Mysql的時(shí)候出現(xiàn)各種各樣的問題,下面這篇文章主要給大家介紹了關(guān)于Windows10系統(tǒng)下MySQL(8.0.37)安裝與配置的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • MySQL數(shù)據(jù)庫(kù)自增主鍵的間隔不為1的解決方式

    MySQL數(shù)據(jù)庫(kù)自增主鍵的間隔不為1的解決方式

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)自增主鍵的間隔不為1的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • MySQL 分表優(yōu)化試驗(yàn)代碼

    MySQL 分表優(yōu)化試驗(yàn)代碼

    我們的項(xiàng)目中有好多不等于的情況。今天寫這篇文章簡(jiǎn)單的分析一下怎么個(gè)優(yōu)化法。
    2010-04-04
  • mysql中You can’t specify target table for update in FROM clause錯(cuò)誤解決方法

    mysql中You can’t specify target table for update in FROM clau

    這篇文章主要介紹了mysql中You can’t specify target table for update in FROM clause錯(cuò)誤解決方法,需要的朋友可以參考下
    2015-02-02
  • mysql 5.7 安裝配置方法圖文教程

    mysql 5.7 安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論

富川| 乌鲁木齐县| 筠连县| 遂宁市| 云阳县| 巴中市| 大竹县| 靖宇县| 阿合奇县| 滦南县| 舒城县| 翁源县| 武陟县| 托克逊县| 托克托县| 缙云县| 永泰县| 齐齐哈尔市| 泗阳县| 虎林市| 太白县| 宿迁市| 和林格尔县| 鸡东县| 隆林| 文安县| 汤阴县| 潍坊市| 五河县| 白山市| 威远县| 凤山县| 大邑县| 惠安县| 仁化县| 霞浦县| 宜兰市| 万载县| 新营市| 金寨县| 绵阳市|