欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL觸發(fā)器定義與使用

 更新時(shí)間:2023年01月05日 16:22:03   作者:黑碼哥  
SQL的觸發(fā)器和存儲(chǔ)過程一樣,都是嵌入到SQL中的一段程序,是SQL中管理數(shù)據(jù)的有力工具,本文給大家詳細(xì)介紹SQL觸發(fā)器的定義語法知識(shí),感興趣的朋友一起看看吧

比如:現(xiàn)需要向?qū)W生表中插入新的學(xué)生數(shù)據(jù)。但在插入學(xué)生數(shù)據(jù)的時(shí),需要同時(shí)檢查老師表里的數(shù)據(jù)。如果插入學(xué)生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向?qū)W生表中插入學(xué)生數(shù)據(jù)。

CALL sp_add_student( 
'S20170091', '楊艷', '女', '2003-04-09',
15, 'G0206', 89.23, 'T0021'
);

如果有多個(gè)學(xué)生的數(shù)據(jù)需要插入,則需要多次調(diào)用該存儲(chǔ)過程;可否不開發(fā)存儲(chǔ)過程,在向student表插入(INSERT)數(shù)據(jù)前,后臺(tái)自動(dòng)判斷并插入老師數(shù)據(jù)?

觸發(fā)器簡介

觸發(fā)器:一種與表操作有關(guān)的數(shù)據(jù)庫對(duì)象,當(dāng)觸發(fā)器所在表上出現(xiàn)指定事件(新增、修改、刪除數(shù)據(jù))時(shí),將調(diào)用該對(duì)象,即表的操作事件觸發(fā)表上的觸發(fā)器的執(zhí)行。

觸發(fā)器的創(chuàng)建及調(diào)用

比如:現(xiàn)需要向?qū)W生表中插入新的學(xué)生數(shù)據(jù)。但在插入學(xué)生數(shù)據(jù)的時(shí),需要同時(shí)檢查老師表里的數(shù)據(jù)。如果插入學(xué)生的老師不在老師表里,則先向老師表中插入一條老師數(shù)據(jù),再向?qū)W生表中插入學(xué)生數(shù)據(jù)。

觸發(fā)器的創(chuàng)建:使用關(guān)鍵字CREATE TRIGGER

CREATE TRIGGER tri_add_student BEFORE INSERT
ON student FOR EACH ROW
BEGIN
	IF NOT EXISTS(SELECT 1 FROM teacher WHERE teacher_id = new.teacher_id) THEN
	INSERT INTO teacher(teacher_id) VALUES (new.teacher_id);
END IF;
END;
INSERT INTO student VALUES(
'S20170092', '李文', '女', '2002-11-19',
16, 'G0206', 55.32, 'T0022'
);

觸發(fā)器的分類及執(zhí)行順序

按事件類型分:

  • INSERT觸發(fā)器;
  • UPDATE觸發(fā)器;
  • DELETE觸發(fā)器;

按執(zhí)行先后分:

  • BEFORE觸發(fā)器;
  • AFTER觸發(fā)器;

NEW與OLD:

  • INSERT觸發(fā)器:NEW 用來表示將要(BEFORE)或已經(jīng)(AFTER)插入的新數(shù)據(jù);
  • UPDATE觸發(fā)器:OLD 用來表示將要或已經(jīng)被修改的原數(shù)據(jù),NEW 用來表示將要或已經(jīng)修改為的新數(shù)據(jù);
  • DELETE觸發(fā)器:OLD 用來表示將要或已經(jīng)被刪除的原數(shù)據(jù);

觸發(fā)器執(zhí)行時(shí)的異常情況:

  • 如果 BEFORE 觸發(fā)器執(zhí)行失敗,SQL 無法正確執(zhí)行;
  • SQL 執(zhí)行失敗時(shí),AFTER 型觸發(fā)器不會(huì)觸發(fā);
  • AFTER 類型的觸發(fā)器執(zhí)行失敗,SQL 會(huì)回滾;

觸發(fā)器的刪除

觸發(fā)器的刪除:使用關(guān)鍵字DROP TRIGGER

如:DROP TRIGGER tri_add_student;

觸發(fā)器的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  • 自動(dòng)觸發(fā),無需調(diào)用;
  • 提供了一種檢查、保證數(shù)據(jù)完整性的方法;
  • 與存儲(chǔ)過程一樣,增強(qiáng)SQL語言的功能和靈活性;

缺點(diǎn):

  • 開發(fā)調(diào)試?yán)щy;
  • 可移植性差;

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

相關(guān)文章

  • mysql中的limit和offset用法詳解

    mysql中的limit和offset用法詳解

    這篇文章主要介紹了mysql中的limit和offset用法詳解,limit一般被用來排序,offset一般和limit組合使用,本文對(duì)這兩個(gè)函數(shù)進(jìn)行詳細(xì)介紹,需要的朋友可以參考下
    2023-10-10
  • 避坑:Sql中?in?和not?in中有null值的情況說明

    避坑:Sql中?in?和not?in中有null值的情況說明

    這篇文章主要介紹了避坑:Sql中?in?和not?in中有null值的情況說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • MySQL基于SSL安全連接的主從復(fù)制(過程詳解)

    MySQL基于SSL安全連接的主從復(fù)制(過程詳解)

    SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,這篇文章主要介紹了MySQL基于SSL安全連接的主從復(fù)制,需要的朋友可以參考下
    2023-04-04
  • MySQL配置文件my.ini全過程

    MySQL配置文件my.ini全過程

    這篇文章主要介紹了MySQL配置文件my.ini全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql高效導(dǎo)數(shù)據(jù)的方法講解

    mysql高效導(dǎo)數(shù)據(jù)的方法講解

    模擬現(xiàn)網(wǎng)測試,需要搭建測試環(huán)境,導(dǎo)入上億級(jí)的數(shù)據(jù)到數(shù)據(jù)庫。對(duì)于到的問題做些簡單記錄,有需要的朋友可以參考一下
    2013-09-09
  • mysql如何根據(jù)漢字首字母排序

    mysql如何根據(jù)漢字首字母排序

    這篇文章主要介紹了mysql根據(jù)漢字首字母排序sql語句,需要的朋友可以參考下
    2014-03-03
  • 解析Mysql備份與恢復(fù)簡單總結(jié)與tee命令的使用介紹

    解析Mysql備份與恢復(fù)簡單總結(jié)與tee命令的使用介紹

    本篇文章是對(duì)Mysql備份與恢復(fù)簡單總結(jié)與tee命令的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL Router的安裝部署

    MySQL Router的安裝部署

    這篇文章主要介紹了MySQL Router的安裝部署,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-04-04
  • 關(guān)于MySQL Memory存儲(chǔ)引擎的相關(guān)知識(shí)

    關(guān)于MySQL Memory存儲(chǔ)引擎的相關(guān)知識(shí)

    這篇文章主要介紹了關(guān)于MySQL Memory存儲(chǔ)引擎的相關(guān)知識(shí),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • 使用keras做SQL注入攻擊的判斷(實(shí)例講解)

    使用keras做SQL注入攻擊的判斷(實(shí)例講解)

    下面小編就為大家分享一篇使用keras做SQL注入攻擊的判斷(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評(píng)論