佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > mysql觸發(fā)器之觸發(fā)器的增刪改查操作示例

mysql觸發(fā)器之觸發(fā)器的增刪改查操作示例

熱門(mén)標(biāo)簽:地方門(mén)戶網(wǎng)站 鐵路電話系統(tǒng) AI電銷 Linux服務(wù)器 百度競(jìng)價(jià)排名 服務(wù)外包 呼叫中心市場(chǎng)需求 網(wǎng)站排名優(yōu)化

本文實(shí)例講述了mysql觸發(fā)器之觸發(fā)器的增刪改查操作。分享給大家供大家參考,具體如下:

我們?cè)趧?chuàng)建觸發(fā)器后,可以在包含觸發(fā)器定義文件的數(shù)據(jù)文件夾中顯示其定義。觸發(fā)器作為純文本文件存儲(chǔ)在以下數(shù)據(jù)庫(kù)文件夾中:

/data_folder/database_name/table_name.trg

我們還可通過(guò)查詢information_schema數(shù)據(jù)庫(kù)中的triggers表來(lái)顯示觸發(fā)器,如下所示:

SELECT 
  *
FROM
  information_schema.triggers
WHERE
  trigger_schema = 'database_name'
    AND trigger_name = 'trigger_name';

該語(yǔ)句允許您查看觸發(fā)器的內(nèi)容及其元數(shù)據(jù),例如:關(guān)聯(lián)表名和定義器,這是創(chuàng)建觸發(fā)器的mysql用戶的名稱。

如果要檢索指定數(shù)據(jù)庫(kù)中的所有觸發(fā)器,則需要使用以下SELECT語(yǔ)句從information_schema數(shù)據(jù)庫(kù)中的triggers表查詢數(shù)據(jù):

SELECT
  *
FROM
  information_schema.triggers
WHERE
  trigger_schema = 'database_name';

要查找與特定表相關(guān)聯(lián)的所有觸發(fā)器:

SELECT 
  *
FROM
  information_schema.triggers
WHERE
  trigger_schema = 'database_name'
    AND event_object_table = 'table_name';

我們來(lái)看下employees表相關(guān)聯(lián)的所有觸發(fā)器:

SELECT * FROM information_schema.triggers
WHERE trigger_schema = '你的數(shù)據(jù)庫(kù)名稱'
    AND event_object_table = 'employees';

其實(shí)在特定數(shù)據(jù)庫(kù)中顯示觸發(fā)器的另一種方法是使用SHOW TRIGGERS語(yǔ)句,語(yǔ)法如下所示:

SHOW TRIGGERS [FROM|IN] database_name
[LIKE expr | WHERE expr];

例如,如果要查看當(dāng)前數(shù)據(jù)庫(kù)中的所有觸發(fā)器,可以使用SHOW TRIGGERS語(yǔ)句,如下所示:

SHOW TRIGGERS;

要獲取特定數(shù)據(jù)庫(kù)中的所有觸發(fā)器,請(qǐng)?jiān)赟HOW TRIGGERS語(yǔ)句中指定數(shù)據(jù)庫(kù)名稱,比如要查詢數(shù)據(jù)庫(kù):luyaran下的所有觸發(fā)器,如下所示:

SHOW TRIGGERS FROM luyaran;

要獲取與特定表相關(guān)聯(lián)的所有觸發(fā)器,可以使用SHOW TRIGGERS語(yǔ)句中的WHERE子句。 以下語(yǔ)句返回與employees表相關(guān)聯(lián)的所有觸發(fā)器:

SHOW TRIGGERS FROM luyaran
WHERE `table` = 'employees';

這里要注意下,當(dāng)我們使用反引號(hào)包裝table列,因?yàn)閠able是MySQL中的保留關(guān)鍵字。然后,當(dāng)執(zhí)行SHOW TRIGGERS語(yǔ)句時(shí),MySQL返回以下列:

  • Trigger:存儲(chǔ)觸發(fā)器的名稱,例如before_employee_update觸發(fā)器。
  • Event:指定事件,例如,調(diào)用觸發(fā)器的INSERT,UPDATE或DELETE。
  • Table:指定觸發(fā)器與例如相關(guān)聯(lián)的表,如employees表。
  • Statement:存儲(chǔ)調(diào)用觸發(fā)器時(shí)要執(zhí)行的語(yǔ)句或復(fù)合語(yǔ)句。
  • Timing:接受兩個(gè)值:BEFORE和AFTER,它指定觸發(fā)器的激活時(shí)間。
  • Created:在創(chuàng)建觸發(fā)器時(shí)記錄創(chuàng)建的時(shí)間。
  • sql_mode:指定觸發(fā)器執(zhí)行時(shí)的SQL模式。
  • Definer:記錄創(chuàng)建觸發(fā)器的帳戶。

在這里我們得注意下,要允許上述語(yǔ)句,我們至少得擁有SUPER權(quán)限。

完事我們來(lái)嘗試使用DROP TRIGGER語(yǔ)句來(lái)刪除現(xiàn)有的觸發(fā)器:

DROP TRIGGER table_name.trigger_name;

如果要?jiǎng)h除與employees表相關(guān)聯(lián)的before_employees_update觸發(fā)器,則可以執(zhí)行以下語(yǔ)句:

DROP TRIGGER employees.before_employees_update;

我們?nèi)绻薷挠|發(fā)器,必須首先刪除它并使用新的代碼重新創(chuàng)建。因?yàn)樵贛ySQL中沒(méi)有類似:ALTER TRIGGER語(yǔ)句,因此,我們不能像修改其他數(shù)據(jù)庫(kù)對(duì)象,如表,視圖和存儲(chǔ)過(guò)程那樣修改觸發(fā)器。

好啦,本次記錄就到這里了。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

您可能感興趣的文章:
  • mysql觸發(fā)器trigger實(shí)例詳解
  • mysql觸發(fā)器(Trigger)簡(jiǎn)明總結(jié)和使用實(shí)例
  • 一篇文章帶你深入了解Mysql觸發(fā)器
  • MySQL觸發(fā)器的使用
  • mysql日志觸發(fā)器實(shí)現(xiàn)代碼
  • MySQL觸發(fā)器trigger的使用

標(biāo)簽:衡水 銅川 蘭州 黃山 湖南 湘潭 崇左 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql觸發(fā)器之觸發(fā)器的增刪改查操作示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    葫芦岛市| 鄂州市| 道真| 河源市| 望谟县| 同仁县| 长治市| 阳泉市| 红河县| 英德市| 浦县| 通河县| 昔阳县| 铜川市| 望都县| 泸水县| 北票市| 田阳县| 永安市| 泾阳县| 宁陕县| 锦州市| 东平县| 大渡口区| 卢龙县| 崇礼县| 寻甸| 烟台市| 余姚市| 龙江县| 临安市| 肥东县| 佳木斯市| 通榆县| 松江区| 麻阳| 安康市| 阳泉市| 鹿邑县| 洛扎县| 松江区|