欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:數(shù)據(jù)庫 MySQL之觸發(fā)器

柚子快報激活碼778899分享:數(shù)據(jù)庫 MySQL之觸發(fā)器

http://yzkb.51969.com/

文章目錄

MySQL觸發(fā)器什么是觸發(fā)器為什么使用觸發(fā)器創(chuàng)建觸發(fā)器添加事件刪除事件修改事件

刪除觸發(fā)器觸發(fā)器的應(yīng)用場景

MySQL觸發(fā)器

什么是觸發(fā)器

MySQL觸發(fā)器(Trigger)是一種特殊的存儲過程,它與表有關(guān),當表上的特定事件(insert,update,delete)發(fā)生時,觸發(fā)器會自動執(zhí)行??梢允褂糜|發(fā)器來實現(xiàn)數(shù)據(jù)約束,數(shù)據(jù)驗證,數(shù)據(jù)復制等功能

為什么使用觸發(fā)器

可以實現(xiàn)數(shù)據(jù)約束,數(shù)據(jù)驗證,數(shù)據(jù)復制等功能

例如:

可以創(chuàng)建一個觸發(fā)器,在向表中插入一條記錄時,自動向另一個表中插入一個記錄,從而實現(xiàn)數(shù)據(jù)復制的功能。 觸發(fā)器還可以用于實現(xiàn)數(shù)據(jù)驗證,

例如

在插入或更新數(shù)據(jù)時,檢查記錄的某些字段是否符合要求,則拒絕插入或者更新,這樣可以保證數(shù)據(jù)的完整性和一致性。

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

語法:

create trigger 觸發(fā)器名稱

{before | after } {insert | update | delete} -- 觸發(fā)器類型和事件

on 表名稱

for each row -- 觸發(fā)器的作用范圍

begin

-- 觸發(fā)器執(zhí)行的操作

end;

觸發(fā)器名稱可以自定義 ,并唯一性,見名知意before / after : 表示觸發(fā)器的類型,分別表示發(fā)生前/發(fā)生后執(zhí)行insert / update / delete : 表示觸發(fā)器的事件類型,分別表示插入 / 更新 / 刪除操作on 表名稱 : 為觸發(fā)器所在的表名for each row : 表示觸發(fā)器作用的范圍,即每一行記錄都會觸發(fā)該觸發(fā)器begin 和 end之間是觸發(fā)器執(zhí)行的操作,可以是一條或者多條SQL語句

觸發(fā)器是自動執(zhí)行的,無需手動調(diào)用,當表上的特定事件(insert , update, delete ) 發(fā)生時,觸發(fā)器會自動執(zhí)行在創(chuàng)建觸發(fā)器時,可以定義觸發(fā)器的類型和事件,從而控制觸發(fā)器的時機和條件

案例:

-- 創(chuàng)建兩張表

create table table1(

id int,

name varchar(20) character set utf8

)charset = utf8;

create table table2(

id int,

name varchar(20) character set utf8

)charset = utf8;

添加事件

-- 創(chuàng)建一個觸發(fā)器,當向表中插入一條記錄時,自動向另一個表中插入一條記錄

create trigger insert_trigger_1

after insert on table1

for each row

begin

-- 觸發(fā)器的具體事件

insert into table2(id,name) values (NEW.id,New.name);

end;

添加數(shù)據(jù):

向table1表中添加數(shù)據(jù)時,會觸發(fā)insert_trigger_1觸發(fā)器,自動向table2表中添加數(shù)據(jù)

insert into table1(id,name) values (1,'張三'),(2,'李四'),(3,'王五'),(4,'趙六'),(5,'唐七'),(6,'老王');

查詢table1表

select * from table1;

查詢table2表

select * from table2;

刪除事件

-- 創(chuàng)建一個觸發(fā)器,當從表中刪除一條記錄時,自動從另一個表中刪除一條記錄

create trigger delete_trigger_1

after delete on table1

for each row

begin

delete from table2 where id = OLD.id and name = OLD.name;

end;

刪除數(shù)據(jù):

刪除table1表中數(shù)據(jù)時,會觸發(fā)delete_trigger_1觸發(fā)器,自動刪除table2表中對應(yīng)的數(shù)據(jù)

delete from table1 where id = 5 and name = '王五';

查看兩張表中的數(shù)據(jù)

select * from table1;

select * from table2;

修改事件

-- 創(chuàng)建一個觸發(fā)器,當向表中更新一條記錄時,自動更新另一個表中的記錄

create trigger update_trigger_1

after update on table1

for each row

begin

update table2 set id = NEW.id, name = NEW.name where id = OLD.id and name = OLD.name;

end;

修改數(shù)據(jù):

修改table1表中數(shù)據(jù)時,會觸發(fā)update_trigger_1觸發(fā)器,自動更新table2表中對應(yīng)的數(shù)據(jù)

update table1 set id = 10,name = '小明' where id = 6 and name = '老王';

select * from table1;

select * from table2;

刪除觸發(fā)器

drop trigger 觸發(fā)器名稱;

觸發(fā)器的應(yīng)用場景

觸發(fā)器的應(yīng)用場景包括但不限于以下幾種:

強制實施業(yè)務(wù)規(guī)則:通過在觸發(fā)器中編寫邏輯,可以在特定的表上自動執(zhí)行業(yè)務(wù)規(guī)則,例如檢查輸入的數(shù)據(jù)是否符合要求,或者限制某些操作的執(zhí)行。記錄日志變更:通過在觸發(fā)器中編寫邏輯,可以在特定的表上自動記錄數(shù)據(jù)的變更情況,例如記錄數(shù)據(jù)的修改時間、修改人等信息。復雜的默認值計算:通過在觸發(fā)器中編寫邏輯,可以在特定的表上自動計算默認值,例如根據(jù)其他字段的值計算出一個新的字段的值。數(shù)據(jù)同步:通過在觸發(fā)器中編寫邏輯,可以在多個表之間自動同步數(shù)據(jù),例如在一個表中插入一條數(shù)據(jù)時,自動在另一個表中插入相應(yīng)的數(shù)據(jù)。數(shù)據(jù)校驗:通過在觸發(fā)器中編寫邏輯,可以在特定的表上自動校驗數(shù)據(jù)的正確性,例如檢查數(shù)據(jù)的唯一性、完整性等。

總結(jié):

觸發(fā)器的應(yīng)用場景非常廣泛,可以用于強制實施業(yè)務(wù)規(guī)則、記錄日志變更、復雜的默認值計算、數(shù)據(jù)同步以及數(shù)據(jù)校驗等。在創(chuàng)建觸發(fā)器時,需要指定觸發(fā)器的名稱、觸發(fā)器所在的表、觸發(fā)器的觸發(fā)時機(如insert、update或delete操作)、觸發(fā)器的執(zhí)行次數(shù)(for each row或for each row statement)以及觸發(fā)器的邏輯。

柚子快報激活碼778899分享:數(shù)據(jù)庫 MySQL之觸發(fā)器

http://yzkb.51969.com/

好文閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18836574.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄