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

mysql之觸發(fā)器使用

 更新時間:2017年09月12日 08:09:55   作者:WalkerShen  
這篇文章主要介紹了mysql之觸發(fā)器使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

觸發(fā)器

什么是觸發(fā)器?觸發(fā)器的使用場景有哪些?

觸發(fā)器是用戶定義在關(guān)系表上的一類由事件驅(qū)動的特殊的存儲過程。

觸發(fā)器是指一段代碼,當(dāng)觸發(fā)某個事件時,自動執(zhí)行這些代碼。

使用場景

  • 可以通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級聯(lián)更改。
  • 實(shí)時監(jiān)控某張表中的某個字段的更改而需要做出相應(yīng)的處理。
  • 例如可以生成某些業(yè)務(wù)的編號。
  • 注意不要濫用,否則會造成數(shù)據(jù)庫及應(yīng)用程序的維護(hù)困難。
  • 大家需要牢記以上基礎(chǔ)知識點(diǎn),重點(diǎn)是理解數(shù)據(jù)類型CHAR和VARCHAR的差異,表存儲引擎InnoDB和MyISAM的區(qū)別。

MySQL中都有哪些觸發(fā)器?

在MySQL數(shù)據(jù)庫中有如下六種觸發(fā)器:

  • Before Insert
  • After Insert
  • Before Update
  • After Update
  • Before Delete
  • After Delete

觸發(fā)器的使用

創(chuàng)建觸發(fā)器

DELIMITER $
CREATE TRIGGER 觸發(fā)器名稱
BEFORE|AFTER  INSERT|UPDATE|DELETE
ON 表名
[FOR EACH ROW]  -- 行級觸發(fā)器
BEGIN
  觸發(fā)器要執(zhí)行的功能;
END$
DELIMITER ;

  • BEFORE|AFTER 表示是在操作之前還操作之后觸發(fā)
  • INSERT|UPDATE|DELETE 是添加、修改、刪除的意思
  • ON 表名 表示是對哪一張表進(jìn)行添加、修改或者刪除的時候觸發(fā)我們要的操作

使用案例

這里是創(chuàng)建一個學(xué)生表,和一個操作記錄表

當(dāng)插入學(xué)生數(shù)據(jù)的時候,日志表就會啟動觸發(fā)器進(jìn)行插入

1、創(chuàng)建表

CREATE TABLE `student` (
  `id` varchar(64) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  `gender` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `student_log` (
  `id` varchar(64) NOT NULL COMMENT '日志id',
  `opt_type` varchar(1) DEFAULT NULL COMMENT '操作類型 i:插入 u:修改 d:刪除',
  `opt_time` datetime DEFAULT NULL COMMENT '操作時間',
  `opt_id` varchar(64) DEFAULT NULL COMMENT '操作id',
  `data` varchar(255) DEFAULT NULL COMMENT '數(shù)據(jù)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、創(chuàng)建觸發(fā)器

create trigger student_log_insert
after insert  # 插入之后處理
on student  
for each row # 代表著每行都遵循這個規(guī)則

# 這里的new代表的是student這個表的新數(shù)據(jù)
begin 
insert into student_log values(
new.id+"111",
'i',
NOW(),
new.id,
concat('{id=',new.id,';','name=',new.name,';','gender=',new.gender,';}')
);
end 

3、查看觸發(fā)器是否成功

# 查看觸發(fā)器
show triggers


# 如果觸發(fā)器不符合自己的要求,可以刪除觸發(fā)器
DROP TRIGGER student_log_insert

image.png

4、測試

insert into student values("112154","i am walker",1);
insert into student values("11111","this is raina",1);

執(zhí)行結(jié)果之后,查看表,數(shù)據(jù)就出來了

image.png

image.png

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mySQL count多個表的數(shù)據(jù)實(shí)例詳解

    mySQL count多個表的數(shù)據(jù)實(shí)例詳解

    這篇文章通過實(shí)例給大家介紹了mySQL中count多個表的數(shù)據(jù),也就是多個表如何聯(lián)合查詢,文中通過項(xiàng)目中遇到的一個問題進(jìn)行分析和實(shí)現(xiàn),給出了詳細(xì)的示例代碼,相信對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起看看吧。
    2016-11-11
  • 詳解MySQL中varchar和int隱式轉(zhuǎn)換的注意事項(xiàng)

    詳解MySQL中varchar和int隱式轉(zhuǎn)換的注意事項(xiàng)

    這篇文章主要為大家詳細(xì)介紹了MySQL中varchar和int隱式轉(zhuǎn)換的注意事項(xiàng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • mysql中g(shù)roup by與having合用注意事項(xiàng)分享

    mysql中g(shù)roup by與having合用注意事項(xiàng)分享

    在mysql中g(shù)roup by分組查詢我們經(jīng)常會用到,并且還同時會與having合用,下面我介紹group by用法與having合用注意事項(xiàng),希望此教程對各位朋友有所幫助
    2013-10-10
  • MySQL中的常用樹形結(jié)構(gòu)設(shè)計(jì)總結(jié)

    MySQL中的常用樹形結(jié)構(gòu)設(shè)計(jì)總結(jié)

    這篇文章主要介紹了MySQL中的常用樹形結(jié)構(gòu)設(shè)計(jì)總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mysql備份恢復(fù)mysqldump.exe幾個常用用例

    mysql備份恢復(fù)mysqldump.exe幾個常用用例

    收集了,一個整理不錯的,mysql備份與恢復(fù)用法
    2008-08-08
  • Mysql主從GTID與binlog如何使用

    Mysql主從GTID與binlog如何使用

    MySQL的GTID和binlog是實(shí)現(xiàn)高效數(shù)據(jù)復(fù)制和恢復(fù)的重要機(jī)制,GTID保證事務(wù)的唯一標(biāo)識,避免復(fù)制沖突;binlog記錄數(shù)據(jù)變更,用于主從復(fù)制和數(shù)據(jù)恢復(fù),兩者配合,提高M(jìn)ySQL復(fù)制的準(zhǔn)確性和管理便捷性
    2024-10-10
  • mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)

    mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)

    這篇文章主要介紹了mysql插入重復(fù)數(shù)據(jù)的處理方式(DUPLICATE、IGNORE、REPLACE),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Mysql雙主搭建的方法步驟

    Mysql雙主搭建的方法步驟

    本文主要介紹了Mysql雙主搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    這篇文章主要介紹了PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程,就像普通程序中的用戶注冊功能那樣為用戶登陸數(shù)據(jù)信息建立一個數(shù)據(jù)庫來進(jìn)行驗(yàn)證,需要的朋友可以參考下
    2015-12-12
  • Centos下Mysql安裝圖文教程

    Centos下Mysql安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了 Centos下Mysql安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論

本溪市| 桓台县| 那坡县| 紫阳县| 乐昌市| 永善县| 天台县| 房山区| 保亭| 耿马| 南部县| 河南省| 车险| 宁明县| 宜宾县| 巴彦县| 绵竹市| 惠安县| 乐昌市| 崇义县| 营山县| 东阿县| 边坝县| 历史| 长岭县| 肇庆市| 昆明市| 微博| 亚东县| 于都县| 天祝| 香格里拉县| 淮北市| 西峡县| 集贤县| 保德县| 股票| 公主岭市| 通辽市| 楚雄市| 肥东县|