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

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

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

比如:現(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)用該存儲過程;可否不開發(fā)存儲過程,在向student表插入(INSERT)數(shù)據(jù)前,后臺自動判斷并插入老師數(shù)據(jù)?

觸發(fā)器簡介

觸發(fā)器:一種與表操作有關(guān)的數(shù)據(jù)庫對象,當(dāng)觸發(fā)器所在表上出現(xiàn)指定事件(新增、修改、刪除數(shù)據(jù))時(shí),將調(diào)用該對象,即表的操作事件觸發(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ā)器不會觸發(fā);
  • AFTER 類型的觸發(fā)器執(zhí)行失敗,SQL 會回滾;

觸發(fā)器的刪除

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

如:DROP TRIGGER tri_add_student;

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

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

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

缺點(diǎn):

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

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

相關(guān)文章

  • Centos6.5 編譯安裝mysql 5.6.16 詳細(xì)教程

    Centos6.5 編譯安裝mysql 5.6.16 詳細(xì)教程

    這篇文章主要為大家分享了Centos6.5編譯安裝mysql 5.6.16詳細(xì)教程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Mysql中時(shí)間戳轉(zhuǎn)為Date的方法示例

    Mysql中時(shí)間戳轉(zhuǎn)為Date的方法示例

    這篇文章主要給大家介紹了關(guān)于Mysql中時(shí)間戳轉(zhuǎn)為Date的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL數(shù)據(jù)庫開啟、關(guān)閉、查看函數(shù)功能的方法

    MySQL數(shù)據(jù)庫開啟、關(guān)閉、查看函數(shù)功能的方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫開啟、關(guān)閉、查看函數(shù)功能的方法,本文為解決一個(gè)錯(cuò)誤總結(jié)而來,錯(cuò)誤信息本文一同給出,需要的朋友可以參考下
    2014-10-10
  • MySQL中的游標(biāo)和綁定變量

    MySQL中的游標(biāo)和綁定變量

    這篇文章主要介紹了MySQL中的游標(biāo)和綁定變量方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql語句實(shí)現(xiàn)簡單的增、刪、改、查操作示例

    mysql語句實(shí)現(xiàn)簡單的增、刪、改、查操作示例

    這篇文章主要介紹了mysql語句實(shí)現(xiàn)簡單的增、刪、改、查操作,結(jié)合實(shí)例形式分析總結(jié)了mysql語句實(shí)現(xiàn)數(shù)據(jù)庫與表的創(chuàng)建、刪除以及增刪改查等常見操作技巧,需要的朋友可以參考下
    2019-05-05
  • windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    mysql的默認(rèn)編碼是拉?。╨atin1),當(dāng)輸入中文的時(shí)候就會報(bào)錯(cuò),所以需要將編碼修改為utf8,從網(wǎng)上找了相關(guān)教程都不可以,索性自己摸索后分享給大家,下面這篇文章主要給大家介紹了在mysql 5.7版本中如何修改編碼為utf-8的方法步驟,需要的朋友可以參考下。
    2017-06-06
  • 解決mysql報(bào)錯(cuò)You must reset your password using ALTER USER statement before executing this statement問題

    解決mysql報(bào)錯(cuò)You must reset your password&nb

    文章介紹了在Linux系統(tǒng)中解決MySQL 5.7及以上版本root用戶密碼過期無法登錄的問題方法,以及如何處理系統(tǒng)權(quán)限表mysql.user結(jié)構(gòu)錯(cuò)誤的問題
    2024-11-11
  • mysql刪除語句超詳細(xì)匯總

    mysql刪除語句超詳細(xì)匯總

    這篇文章主要給大家介紹了關(guān)于mysql刪除語句超詳細(xì)匯總的相關(guān)資料,SQL是用于訪問和處理數(shù)據(jù)庫的標(biāo)準(zhǔn)的計(jì)算機(jī)語言,簡稱結(jié)構(gòu)化查詢語言,SQL中的刪除語句有多種方法,這里總結(jié)下,需要的朋友可以參考下
    2023-08-08
  • MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解

    這篇文章主要介紹了MYSQL數(shù)據(jù)插入之返回自增主鍵ID的方法詳解,mysql中的insert插入之后會有返回值,返回的是影響的行數(shù),也就是說,成功插入一條數(shù)據(jù)之后返回的是1,失敗則返回0,那么,很多時(shí)候我們都想要得到最后插入的id值,需要的朋友可以參考下
    2023-10-10
  • MySQL修改表一次添加多個(gè)列(字段)和索引的方法

    MySQL修改表一次添加多個(gè)列(字段)和索引的方法

    下面小編就為大家?guī)硪黄狹ySQL修改表一次添加多個(gè)列(字段)和索引的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論

宁津县| 赣州市| 城口县| 报价| 太和县| 海门市| 乐山市| 武山县| 玉门市| 台湾省| 阿合奇县| 中牟县| 兴国县| 育儿| 恩施市| 郑州市| 杭州市| 新营市| 西吉县| 黄山市| 图木舒克市| 沁阳市| 罗田县| 灵石县| 多伦县| 衢州市| SHOW| 东阳市| 东源县| 凤凰县| 商水县| 澎湖县| 陵水| 紫金县| 磐安县| 商洛市| 竹北市| 东乡县| 亚东县| 乌鲁木齐市| 静安区|