mysql條件觸發器實例_mysql觸發器實例一則

例子,實例學習mysql觸發器的用法。

一,準備二張測試表:

1,測試表1

復制代碼 代碼示例:

DROP TABLE IF EXISTS test;

CREATE TABLE test (

id?????????? bigint(11) unsigned NOT NULL AUTO_INCREMENT,

name???????? varchar(100) NOT NULL DEFAULT '',

type???????? varchar(100),

create_time? datetime,

PRIMARY KEY (ID)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2,測試表2

復制代碼 代碼示例:

DROP TABLE IF EXISTS test_hisy;

CREATE TABLE test_hisy (

id?????????? bigint(11) unsigned NOT NULL AUTO_INCREMENT,

name???????? varchar(100) NOT NULL DEFAULT '',

type???????? varchar(100),

create_time? datetime,

operation??? varchar(100) COMMENT '操作類型',

PRIMARY KEY (ID)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

二,mysql觸發器實例

1,insert觸發器

表test新增記錄后,將type值為“1”的記錄同時插入到test_hisy表中(AFTER INSERT:錄入后觸發, BEFORE INSERT:錄入前觸發)

復制代碼 代碼示例:

DELIMITER //

DROP TRIGGER IF EXISTS t_after_insert_test//

CREATE TRIGGER t_after_insert_test

AFTER INSERT ON test

FOR EACH ROW

BEGIN

IF new.type='1' THEN

insert into test_hisy(name, type, create_time, operation)

values(new.name, new.type, new.create_time, 'insert');

END IF;

END;//

2,update觸發器

表test修改時,若type值為“2”則將修改前的記錄同時插入到test_hisy表中(AFTER UPDATE:修改后觸發, BEFORE UPDATE:修改前觸發)

復制代碼 代碼示例:

DELIMITER //

DROP TRIGGER IF EXISTS t_before_update_test//

CREATE TRIGGER t_before_update_test

BEFORE UPDATE ON test

FOR EACH ROW

BEGIN

IF new.type='2' THEN

insert into test_hisy(name, type, create_time, operation)

values(old.name, old.type, old.create_time, 'update');

END IF;

END;//

3,delete觸發器

表test刪除記錄前,將刪除的記錄錄入到表test_hisy中(AFTER DELETE:刪除后觸發, BEFORE DELETE:刪除前觸發)

復制代碼 代碼示例:

DELIMITER //

DROP TRIGGER IF EXISTS t_before_delete_test//

CREATE TRIGGER t_before_delete_test

BEFORE DELETE ON test

FOR EACH ROW

BEGIN

insert into test_hisy(name, type, create_time, operation)

values(old.name, old.type, old.create_time, 'delete');

END;//

備注:以上觸發器例子中出現的new為修改后的數據, old為修改前的數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396405.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里大數據神預測 勝率僅5.9%中國卻1:0勝韓國

寫在最前面:這是早晨偶然看到的一篇文章,是對昨天中國卻1:0勝韓國的評論。有朋友感慨:努力不放棄的時候,全世界都會幫你。這篇內容很全面的串起阿里巴巴在大數據預測方面的動作,角度很別致,分享…

Python中類、對象與self詳解

先介紹一下python中的類與對象/實例。然后詳細說明self。說明:對象等同實例,本文稱呼不一致時請自行統一 【一】類與對象/實例 1、類 (1)類由名稱、屬性、方法三部分組成 (2)類是抽象模板,比如學…

面試題28 字符串排列

題目描述 輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 結果請按字母順序輸出。 輸入描述: 輸入一個字符串,長度不超過9(可能有字符重復),字符只包括大小寫字母。 1 cla…

javascript 框架_克服JavaScript框架疲勞

javascript 框架by Tero Parviainen通過Tero Parviainen 克服JavaScript框架疲勞 (Overcoming JavaScript Framework Fatigue) The JavaScript community is suffering from a wave of framework fatigue. It’s caused by the massive outpouring of new frameworks, techniq…

java開發環境:還在配classpath?你out啦!

2019獨角獸企業重金招聘Python工程師標準>>> 先說結論:只需要配置JAVA_HOME和path路徑即可,無需配置classpath 參考Oracle官網的說明: The class path tells JDK tools and applications where to find third-party and user-defi…

qpython3可以調用哪些庫_Python3 如何使用asyncio庫在調用第三方模塊(存在IO等待)的情況下實現協程?...

問題描述demo中有一個 task_check 的模塊,底層是用urllib實現,請問如果要實現使用 asyncio 庫實現協程操作,需要修改這個模塊的底層代碼嗎?如何修改? 往大佬指點問題出現的環境背景及自己嘗試過哪些方法平時都是使用 gevent 庫和 monkey.patch_all() 實現協程,但發現 gevent …

.Net Core 商城微服務項目系列(二):使用Ocelot + Consul構建具備服務注冊和發現功能的網關...

1.服務注冊 在上一篇的鑒權和登錄服務中分別通過NuGet引用Consul這個包,同時新增AppBuilderExtensions類: public static class AppBuilderExtensions{public static IApplicationBuilder RegisterConsul(this IApplicationBuilder app,IApplicationLife…

java打印數組_Java中打印數組內容的方式有哪些?

下面是幾種常見的打印方式。方法一:使用循環打印。public class Demo {public static void main(String[] args) {String[] infos new String[] {"Java", "Android", "C/C", "Kotlin"};StringBuffer strBuffer new Strin…

$(function() {})

$(function() {});是$(document).ready(function(){ })的簡寫, 最早接觸的時候也說$(document).ready(function(){ })這個函數是用來取代頁面中的window.onload; 用來在DOM加載完成之后執行一系列預先定義好的函數。

恢復工具

EasyRecovery http://www.upantool.com/hfxf/huifu/2011/EasyRecovery_V6.22.html轉載于:https://www.cnblogs.com/cb168/p/5359133.html

四參數坐標轉換c++_GPSRTK坐標轉換及四參數、七參數適用條件

工程測量儀器已由經緯儀、全站儀過渡到GNSS(全球衛星導航系統),特別是公路行業,GPS-RTK作為GNSS的一種應用目前已十分普及。現階段GPS-RTK以WGS-84 坐標系統為主流,所發布的星歷參數也是基于此坐標系統,但隨著北斗導航系統的逐步完…

教主的魔法

傳送門 這道題序列很長,但是操作數很少,然后也沒想到什么好的數據結構來維護,那就分塊吧。 感覺維護的過程很好想,修改的時候對于整個塊都在內的直接打標記,兩個零散的區間暴力重構,重新排序。查詢的時候&a…

obs自定義編碼設置_通過7個步驟設置OBS進行實時編碼

obs自定義編碼設置by Wesley McCann韋斯利麥肯(Wesley McCann) 通過7個步驟設置OBS進行實時編碼 (Setting up OBS for Live Coding in 7 Steps) Twitch TV is a popular live-streaming service. You traditionally used Twitch to stream yourself playing video games, but …

java hadoop api_Hadoop 系列HDFS的Java API( Java API介紹)

HDFS的Java APIJava API介紹將詳細介紹HDFS Java API,一下節再演示更多應用。Java API 官網如上圖所示,Java API頁面分為了三部分,左上角是包(Packages)窗口,左下角是所有類(All Classes是)窗口,右側是詳情窗口。這里推…

最大連通子數組

這次是求聯通子數組的求和,我們想用圖的某些算法,比如迪杰斯特拉等,但是遇到了困難。用BFS搜索能達到要求,但是還未能成功。 那么我們這樣想,先將每行的最大子數組之和,然后再將這些最大之和組成一個數組&a…

redis的zset的底層實現_Redis(三)--- Redis的五大數據類型的底層實現

1、簡介Redis的五大數據類型也稱五大數據對象;前面介紹過6大數據結構,Redis并沒有直接使用這些結構來實現鍵值對數據庫,而是使用這些結構構建了一個對象系統redisObject;這個對象系統包含了五大數據對象,字符串對象(st…

科學計算機簡單編程_是“計算機科學”還是“編程”?

科學計算機簡單編程by Sam Corcos由Sam Corcos 是“計算機科學”還是“編程”? (Is It “Computer Science” or “Programming”?) 教育政策白皮書(提示:它們不是同一個東西) (An education policy white paper (hint: they’re not the same thing))…

[Matlab] 畫圖命令

matlab畫圖命令,不定時更新以便查找 set(gcf, color, [1 1 1]);     % 使圖背景為白色 alpha(0.4);           %設置平面透明度 plot(Circle1,Circle2,k--,linewidth,1.25);  % k--設置線型  ‘linewidth’,1.25  設置線寬度為1.25 %線型   …

django入門記錄 2

1. 創建一個app, python manage.py startapp appname 2. 設計model,在appname/目錄下編輯好model 3. 檢測model的修改,python manage.py makemigrations appname 4. 自動執行數據庫遷移,并同步管理數據庫結構, python…

spark sql 數據類型轉換_SparkSql 數據類型轉換

1、SparkSql數據類型 1.1數字類型 ByteType:代表一個字節的整數。范圍是-128到127 ShortType:代表兩個字節的整數。范圍是-32768到32767 IntegerType:代表4個字節的整數。范圍是-2147483648到2147483647 LongType:代表8個字節的整數。范圍是-9223372036854775808到92233720…