亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL觸發器如何創建與刪除

發布時間:2022-06-29 09:13:22 來源:億速云 閱讀:188 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹“MySQL觸發器如何創建與刪除”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL觸發器如何創建與刪除”文章能幫助大家解決問題。

MySQL觸發器如何創建與刪除

1.為什么需要觸發器

有一些表是互相關聯的,比如說商品表和庫存表,我們對商品表的數據進行操作,那么對應的庫存表還得發生變化,這樣才可以保證數據的完整。如果我們是自己手動維護的話,比較麻煩。
這個時候我們可以使用觸發器,創建一個觸發器,讓商品信息數據的插入操作自動觸發庫存數據的插入操作等,這樣我們就不需要擔心因為忘記添加庫存數據而導致數據丟失了。

2.觸發器概述

  • MySQL是從5.0.2版本開始支持觸發器的

  • MySQL的觸發器和存儲過程一樣都是嵌入到MySQL服務器的一段程序

  • 觸發器是由某一個事件來觸發某個操作,這些事件包括insert,delete,update事件

  • 若定義了觸發程序,那么數據庫執行這些語句的時候,就相當于事件發生,會自動激發觸發器執行相應的操作

  • 如果對數據庫中的表的數據進行插入等操作的時候,需要自動執行一些數據庫邏輯的時候,我們可以用觸發器來實現。

3.觸發器的創建

3.1語法

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

  • for each row表明,每執行一次事件(insert,update或delete)就會觸發一次觸發器

CREATE TRIGGER 觸發器名稱 
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
FOR EACH ROW 觸發器執行的語句塊;

說明:

  • 表名:表示觸發器監控的對象。

  • BEFORE|AFTER:表示觸發的時間。BEFORE 表示在事件之前觸發;AFTER 表示在事件之后觸發。

  • INSERT|UPDATE|DELETE:表示觸發的事件。

    • INSERT 表示插入記錄時觸發;

    • UPDATE 表示更新記錄時觸發;

    • DELETE 表示刪除記錄時觸發。

  • 觸發器執行的語句塊:可以是單條SQL語句,也可以是由BEGIN…END結構組成的復合語句塊。

3.2 案例演示

先準備表

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的日志信息。
MySQL觸發器如何創建與刪除
MySQL觸發器如何創建與刪除

4.查看觸發器

  • 查看觸發器是查看數據庫中已經存在的觸發器的定義,狀態和語法信息等

  • 方式一:查看當前數據庫的所有觸發器的定義

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

MySQL觸發器如何創建與刪除

  • 方式二:查看當前數據庫中某一個觸發器的定義

show create trigger 觸發器名

MySQL觸發器如何創建與刪除

  • 方式三:從系統庫information_schema的TRIGGERS表中查詢“salary_check_trigger”觸發器的信息

SELECT * FROM information_schema.TRIGGERS;

5.刪除觸發器

觸發器也是數據庫對象,觸發器也是用drop語句來刪除

drop trigger if exists 觸發器名;

關于“MySQL觸發器如何創建與刪除”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵璧县| 贵阳市| 仁化县| 沙雅县| 皮山县| 南溪县| 尼木县| 儋州市| 香港| 绩溪县| 金乡县| 阜南县| 共和县| 揭阳市| 朝阳区| 那坡县| 崇仁县| 苍梧县| 崇礼县| 凤凰县| 台东县| 建瓯市| 岚皋县| 大城县| 静安区| 黄浦区| 灵宝市| 天长市| 盱眙县| 呼玛县| 漳浦县| 孝义市| 合作市| 得荣县| 齐河县| 侯马市| 渭南市| 宣城市| 黄大仙区| 凤凰县| 伊通|