日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL存儲函數以及觸發器詳解

瀏覽:32日期:2023-08-14 20:18:43
目錄MySQLSQL存儲函數1). 介紹2). 案例 觸發器介紹 語法1). 創建2). 查看3). 刪除案例A. 插入數據觸發器測試:B. 修改數據觸發器測試:C. 刪除數據觸發器測試:MySQL

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。MySQL是一種關系型數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型和大型網站的開發都選擇 MySQL 作為網站數據庫。

SQL

結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同數據庫系統, 可以使用相同的結構化查詢語言作為數據輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

存儲函數1). 介紹

存儲函數是有返回值的存儲過程,存儲函數的參數只能是 IN 類型的。具體語法如下:

CREATE FUNCTION 存儲函數名稱 ([ 參數列表 ])RETURNS type [characteristic ...]BEGIN-- SQL語句RETURN ...;END ;

characteristic 說明

DETERMINISTIC :相同的輸入參數總是產生相同的結果

NO SQL :不包含 SQL 語句。

READS SQL DATA :包含讀取數據的語句,但不包含寫入數據的語句。

2). 案例

計算從 1 累加到 n 的值, n 為傳入的參數值。

create function fun1(n int)returns int deterministicbegindeclare total int default 0;while n>0 doset total := total + n;set n := n - 1;end while;return total;end;select fun1(50);

在 mysql8.0 版本中 binlog 默認是開啟的,一旦開啟了, mysql 就要求在定義存儲過程時,需要指定characteristic 特性,否則就會報如下錯誤:

觸發器介紹

觸發器是與表有關的數據庫對象,指在 insert/update/delete 之前 (BEFORE) 或之后 (AFTER) ,觸發并執行觸發器中定義的 SQL 語句集合。觸發器的這種特性可以協助應用在數據庫端確保數據的完整性, 日志記錄 , 數據校驗等操作 。

使用別名 OLD 和 NEW 來引用觸發器中發生變化的記錄內容,這與其他的數據庫是相似的。現在觸發器還只支持行級觸發,不支持語句級觸發。

語法1). 創建CREATE TRIGGER trigger_nameBEFORE/AFTER INSERT/UPDATE/DELETEON tbl_name FOR EACH ROW -- 行級觸發器BEGINtrigger_stmt ;END; 2). 查看SHOW TRIGGERS ;3). 刪除DROP TRIGGER [schema_name.]trigger_name ; -- 如果沒有指定 schema_name,默認為當前數據庫 。案例

通過觸發器記錄 tb_user 表的數據變更日志,將變更日志插入到日志表 user_logs 中 , 包含增加 ,

修改 , 刪除 ;

表結構準備 :

-- 準備工作 : 日志表 user_logscreate table user_logs(id int(11) not null auto_increment,operation varchar(20) not null comment '操作類型, insert/update/delete',operate_time datetime not null comment '操作時間',operate_id int(11) not null comment '操作的ID',operate_params varchar(500) comment '操作參數',primary key(`id`))engine=innodb default charset=utf8;A. 插入數據觸發器create trigger tb_user_insert_triggerafter insert on tb_user for each rowbegininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, 'insert', now(), new.id, concat('插入的數據內容為:id=',new.id,',name=',new.name, ', phone=', NEW.phone, ', email=', NEW.email, ',profession=', NEW.profession));end;測試:-- 查看show triggers ;-- 插入數據到tb_userinsert into tb_user(id, name, phone, email, profession, age, gender, status,createtime) VALUES (26,'三皇子','18809091212','erhuangzi@163.com','軟件工程',23,'1','1',now());

測試完畢之后,檢查日志表中的數據是否可以正常插入,以及插入數據的正確性。

B. 修改數據觸發器create trigger tb_user_update_triggerafter update on tb_user for each rowbegininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, 'update', now(), new.id,concat('更新之前的數據: id=',old.id,',name=',old.name, ', phone=',old.phone, ', email=', old.email, ', profession=', old.profession,' | 更新之后的數據: id=',new.id,',name=',new.name, ', phone=',NEW.phone, ', email=', NEW.email, ', profession=', NEW.profession));end;測試:-- 查看show triggers ;-- 更新update tb_user set profession = '會計' where id = 23;update tb_user set profession = '會計' where id <= 5;

測試完畢之后,檢查日志表中的數據是否可以正常插入,以及插入數據的正確性。

C. 刪除數據觸發器create trigger tb_user_delete_triggerafter delete on tb_user for each rowbegininsert into user_logs(id, operation, operate_time, operate_id, operate_params)VALUES(null, 'delete', now(), old.id,concat('刪除之前的數據: id=',old.id,',name=',old.name, ', phone=',old.phone, ', email=', old.email, ', profession=', old.profession));end;測試:-- 查看show triggers ;-- 刪除數據delete from tb_user where id = 26;

測試完畢之后,檢查日志表中的數據是否可以正常插入,以及插入數據的正確性。

到此這篇關于MySQL存儲函數以及觸發器詳解的文章就介紹到這了,更多相關MySQL存儲函數及觸發器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂精品久久久久| 久久精品国语| 免费观看日韩电影| 日韩视频二区| 视频在线在亚洲| 综合国产视频| 日本一区免费网站| 国产精品v一区二区三区| 欧美黑人巨大videos精品| 欧美国产视频| 欧美国产日韩电影| 成人在线视频免费看| 久久久久久网| 久久九九99| 蜜乳av另类精品一区二区| 中文无码久久精品| 欧美一区影院| 欧美91在线| 亚洲啊v在线| 在线成人直播| 中文字幕av一区二区三区四区| 日韩欧美美女在线观看| 国产精品欧美大片| 天堂av在线| 国产精品美女| 日韩区一区二| 精品国产三区在线| 亚洲大片在线| 中文字幕一区二区三区在线视频| 欧美日本精品| 日韩理论片av| 在线精品福利| 国产精品流白浆在线观看| 国产一区二区三区国产精品| 国产99久久久国产精品成人免费| 蜜桃av一区二区| 欧美国产另类| 黄色免费成人| 久久av超碰| 欧美精品一线| 国产亚洲观看| 日韩精品看片| 日韩精品社区| 免费看av不卡| 日韩精品免费观看视频| 福利片在线一区二区| 美女久久一区| 国产一区2区在线观看| 亚洲一区不卡| 精品色999| 美女精品在线观看| 精品免费av一区二区三区| 国产视频一区免费看| 国产精品激情电影| 免费国产自久久久久三四区久久 | 亚洲欧美日本视频在线观看| 久久精品99国产精品| 另类中文字幕国产精品| 欧美日韩国产一区二区在线观看| 激情视频网站在线播放色| 丝袜美腿成人在线| 麻豆理论在线观看| 日日摸夜夜添夜夜添国产精品| 9999国产精品| 91精品丝袜国产高跟在线| 日韩国产网站| 国产精品亚洲四区在线观看| 国产国产精品| 精品久久免费| 日本在线成人| 国产高清一区| 中文字幕人成乱码在线观看 | 尹人成人综合网| 国产成人精品一区二区三区在线| 视频在线在亚洲| 四虎884aa成人精品最新| 欧美亚洲一区二区三区| 一区二区小说| 国产一区二区三区免费在线| 天海翼精品一区二区三区| 久久精品国产亚洲夜色av网站 | 综合激情一区| 亚洲精品99| 成人日韩精品| 国内在线观看一区二区三区| 日本成人精品| 日韩中文字幕91| 亚洲高清毛片| 日韩久久视频| 久久免费视频66| 欧美日韩亚洲一区三区| 老司机久久99久久精品播放免费| 日韩久久精品| 久久精品九色| 国产精品最新| 日韩精品社区| 亚洲精品自拍| 日本欧洲一区二区| 国产精品免费看| 91久久国产| 国产99久久久国产精品成人免费| 国产不卡人人| 久久精品国产一区二区| 国产精品流白浆在线观看| 日本不卡一二三区黄网| 在线精品一区| 中文精品电影| 视频在线观看一区二区三区| 在线看片不卡| 亚洲二区免费| 国户精品久久久久久久久久久不卡 | 国产亚洲一区在线| 在线日韩视频| 亚洲精品va| 国产美女一区| 美女精品在线观看| 免费视频最近日韩| 综合色就爱涩涩涩综合婷婷| 国产精品外国| 蜜臀av一区二区在线免费观看| 欧美另类专区| 好看的av在线不卡观看| 国产综合婷婷| 一区三区视频| 在线亚洲欧美| 亚洲影视一区| 欧美亚洲人成在线| 国产精品亚洲一区二区在线观看| 国产精品网站在线看| 国产精品115| 国产一区二区三区黄网站| 美女av在线免费看| 91精品综合| 夜久久久久久| 亚洲精品乱码| 国产欧美日韩一区二区三区四区| 久久国际精品| 国产成人a视频高清在线观看| 日韩欧美精品一区| 激情欧美一区| 先锋亚洲精品| 日韩精品午夜视频| 国产精品白浆| 日韩黄色大片| 日韩午夜av| 日韩精品一区二区三区av| 国产欧美91| 福利一区二区三区视频在线观看| 九九精品调教| 手机精品视频在线观看| 国产视频一区二区在线播放| 麻豆免费精品视频| 九九精品调教| 日韩中文字幕不卡| 国产精品亲子伦av一区二区三区 | 久久福利在线| 日韩一区二区中文| 亚洲欧美日韩国产综合精品二区| 蜜臀久久99精品久久久久宅男| 日本欧美在线| 日韩精品第一区| 久久av一区| 国产欧美日韩一区二区三区四区| 中文字幕高清在线播放| 亚洲综合二区| 国产剧情一区二区在线观看| 高清不卡一区| 亚洲欧美不卡| 麻豆精品99| 夜久久久久久| 麻豆一区在线| 中文一区在线| 久久成人福利| 日韩视频在线一区二区三区| 国产亚洲久久| 亚洲高清毛片| 国产精品主播在线观看| 日韩大片在线| 日本一区二区中文字幕| 久久久久久一区二区| 日韩精品一二三四| 成人污污视频| 中文不卡在线| 超级白嫩亚洲国产第一| 中文视频一区| 国产综合色区在线观看| 日本亚洲欧美天堂免费| 韩国三级一区| 青青国产精品| 欧美亚洲精品在线| 国产精品久久777777毛茸茸| 午夜影院欧美| 国产精品嫩模av在线| 一本色道精品久久一区二区三区| 精品黄色一级片| 亚洲欧洲日韩精品在线| 香蕉成人av| 美女尤物国产一区| 亚洲天堂av资源在线观看| 中文字幕人成乱码在线观看|