您的位置:首頁 > 教程 > Mysql/MariaDB > MySQL觸發器的使用詳解

MySQL觸發器的使用詳解

2022-06-17 11:13:23 來源:易采站長站 作者:

MySQL觸發器的使用詳解

目錄
1.為什么需要觸發器2.觸發器概述3.觸發器的創建3.1語法3.2 案例演示4.查看觸發器5.刪除觸發器總結

ezf站長之家-易采站長站-Easck.Com

1.為什么需要觸發器

有一些表是互相關聯的,比如說商品表和庫存表,我們對商品表的數據進行操作,那么對應的庫存表還得發生變化,這樣才可以保證數據的完整。如果我們是自己手動維護的話,比較麻煩。ezf站長之家-易采站長站-Easck.Com

這個時候我們可以使用觸發器,創建一個觸發器,讓商品信息數據的插入操作自動觸發庫存數據的插入操作等,這樣我們就不需要擔心因為忘記添加庫存數據而導致數據丟失了。ezf站長之家-易采站長站-Easck.Com

ezf站長之家-易采站長站-Easck.Com

2.觸發器概述

    MySQL是從5.0.2版本開始支持觸發器的MySQL的觸發器和存儲過程一樣都是嵌入到MySQL服務器的一段程序觸發器是由某一個事件來觸發某個操作,這些事件包括insert,delete,update事件若定義了觸發程序,那么數據庫執行這些語句的時候,就相當于事件發生,會自動激發觸發器執行相應的操作如果對數據庫中的表的數據進行插入等操作的時候,需要自動執行一些數據庫邏輯的時候,我們可以用觸發器來實現。

    ezf站長之家-易采站長站-Easck.Com

    3.觸發器的創建

    ezf站長之家-易采站長站-Easck.Com

    3.1語法

    觸發器是作用在表上的,比如說我們希望表A新增一條記錄的時候就觸發>

    for each row表明,每執行一次事件(insert,update或delete)就會觸發一次觸發器ezf站長之家-易采站長站-Easck.Com

    CREATE TRIGGER 觸發器名稱 ezf站長之家-易采站長站-Easck.Com
    {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 ezf站長之家-易采站長站-Easck.Com
    FOR EACH ROW ezf站長之家-易采站長站-Easck.Com
    觸發器執行的語句塊;ezf站長之家-易采站長站-Easck.Com

    說明:ezf站長之家-易采站長站-Easck.Com

    表名:表示觸發器監控的對象。ezf站長之家-易采站長站-Easck.Com

    BEFORE|AFTER:表示觸發的時間。BEFORE 表示在事件之前觸發;AFTER 表示在事件之后觸發。ezf站長之家-易采站長站-Easck.Com

    INSERT|UPDATE|DELETE:表示觸發的事件。ezf站長之家-易采站長站-Easck.Com

      INSERT 表示插入記錄時觸發;UPDATE 表示更新記錄時觸發;DELETE 表示刪除記錄時觸發。

      觸發器執行的語句塊:可以是單條SQL語句,也可以是由BEGIN…END結構組成的復合語句塊。ezf站長之家-易采站長站-Easck.Com

      ezf站長之家-易采站長站-Easck.Com

      3.2>

      先準備表ezf站長之家-易采站長站-Easck.Com

      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)
      );
      

      要求:創建觸發器:創建名稱為before_insert的觸發器,向test_trigger數據表插入數據之前,向test_trigger_log數據表中插入before_insert的日志信息。ezf站長之家-易采站長站-Easck.Com

      ezf站長之家-易采站長站-Easck.Com

      ezf站長之家-易采站長站-Easck.Com

      ezf站長之家-易采站長站-Easck.Com

      4.查看觸發器

      查看觸發器是查看數據庫中已經存在的觸發器的定義,狀態和語法信息等ezf站長之家-易采站長站-Easck.Com

      方式一:查看當前數據庫的所有觸發器的定義ezf站長之家-易采站長站-Easck.Com

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

      ezf站長之家-易采站長站-Easck.Com

      方式二:查看當前數據庫中某一個觸發器的定義ezf站長之家-易采站長站-Easck.Com

      show create trigger 觸發器名
      

      ezf站長之家-易采站長站-Easck.Com

      方式三:從系統庫information_schema的TRIGGERS表中查詢“salary_check_trigger”觸發器的信息ezf站長之家-易采站長站-Easck.Com

      SELECT * FROM information_schema.TRIGGERS;
      

      ezf站長之家-易采站長站-Easck.Com

      5.刪除觸發器

      觸發器也是數據庫對象,觸發器也是用drop語句來刪除ezf站長之家-易采站長站-Easck.Com

      drop trigger if exists 觸發器名;
      

      ezf站長之家-易采站長站-Easck.Com

      總結

      到此這篇關于MySQL觸發器使用的文章就介紹到這了,更多相關MySQL觸發器內容請搜索易采站長站以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持易采站長站!ezf站長之家-易采站長站-Easck.Com

      如有侵權,請聯系QQ:279390809 電話:15144810328

相關文章

  • mysql 5.7.30安裝配置方法圖文教程

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

    之前把服務器里面的MySQL卸了重裝,安裝mysql時未做總結,換新電腦,補上安裝記錄,安裝的時候,找了些網友的安裝記錄,發現好多坑 截個圖,作為筆記,也正好留給需要的朋友們。
    2019-01-03
  • MySQL5.6免安裝版環境配置圖文教程

    MySQL5.6免安裝版環境配置圖文教程

    MySQL是一個小巧玲瓏但功能強大的數據庫,目前十分流行。但是官網給出的安裝包有兩種格式,一個是msi格式,一個是zip格式的。很多人下了zip格式的解壓發現沒有setup.exe,面對一堆文
    2019-01-04
  • Linux下安裝mysql-8.0.20的教程詳解

    Linux下安裝mysql-8.0.20的教程詳解

    ** Linux下安裝mysql-8.0.20 ** 環境介紹 操作系統:CentOS 7 mysql下載地址:https://dev.mysql.com/downloads/mysql/ 下載版本:mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 卸載mysql 查看是否安裝過mysql,命令:fin
    2020-05-24
  • linux環境下安裝mysql數據庫的詳細教程

    linux環境下安裝mysql數據庫的詳細教程

    1.安裝數據庫 1)yum -y install mysql-server(簡單) yum命令自動從網上尋找mysql服務資源,下載至本地并完成安裝 2)也可以自己在網上下載mysql服務,通過xftp傳輸至Linux系統,自己安裝(一般安
    2020-06-20
  • MySQL8.0.20安裝教程及其安裝問題詳細教程

    MySQL8.0.20安裝教程及其安裝問題詳細教程

    原文地址:https://blog.csdn.net/m0_46579864/article/details/105981304 官網下載MySQL的安裝包 1.下載鏈接如下: MySQL8.0.20版本 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html 其他版本:MySQL8.0.16版本
    2020-05-10
  • MySQL對數據庫操作(創建、選擇、刪除)

    MySQL對數據庫操作(創建、選擇、刪除)

    MySQL 創建數據庫 我們可以在登陸 MySQL 服務后,使用 create 命令創建數據庫,語法如下: CREATE DATABASE 數據庫名; 以下命令簡單的演示了創建數據庫的過程,數據名為 RUNOOB: [root@host]# mysql
    2020-07-01
  • Linux系統MySQL8.0.19快速安裝配置教程圖解

    Linux系統MySQL8.0.19快速安裝配置教程圖解

    一、環境介紹 Linux系統使用yum安裝MySQL需要從網上下載MySQL的一系列組件,這個過程非常耗時且有下載中斷的可能,如果想要快速安裝MySQL,可以先在網上將MySQL的離線包下載下來傳到系
    2020-02-27
  • mysql 加了 skip-name-resolve不能鏈接數據庫問題的解決方法

    mysql 加了 skip-name-resolve不能鏈接數據庫問題的解決方法

    mysql 加了 skip-name-resolve不能鏈接的問題, 要確認 MySql 是否采用過主機名的授權 在 MySql Server 的配置文件 My.ini 中,增加如下兩行: [mysqld] skip-name-resolve 它將禁止 MySql Server 對外部連接進
    2019-01-04
色七七影院_香港三级台湾三级在线播放_男人放进女人阳道猛进猛出