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

首頁綜合 正文
目錄

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

柚子快報(bào)激活碼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)是一種特殊的存儲(chǔ)過程,它與表有關(guān),當(dāng)表上的特定事件(insert,update,delete)發(fā)生時(shí),觸發(fā)器會(huì)自動(dòng)執(zhí)行??梢允褂糜|發(fā)器來實(shí)現(xiàn)數(shù)據(jù)約束,數(shù)據(jù)驗(yàn)證,數(shù)據(jù)復(fù)制等功能

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

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

例如:

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

例如

在插入或更新數(shù)據(jù)時(shí),檢查記錄的某些字段是否符合要求,則拒絕插入或者更新,這樣可以保證數(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ā)器作用的范圍,即每一行記錄都會(huì)觸發(fā)該觸發(fā)器begin 和 end之間是觸發(fā)器執(zhí)行的操作,可以是一條或者多條SQL語句

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

案例:

-- 創(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)建一個(gè)觸發(fā)器,當(dāng)向表中插入一條記錄時(shí),自動(dòng)向另一個(gè)表中插入一條記錄

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ù)時(shí),會(huì)觸發(fā)insert_trigger_1觸發(fā)器,自動(dòng)向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)建一個(gè)觸發(fā)器,當(dāng)從表中刪除一條記錄時(shí),自動(dòng)從另一個(gè)表中刪除一條記錄

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ù)時(shí),會(huì)觸發(fā)delete_trigger_1觸發(fā)器,自動(dòng)刪除table2表中對應(yīng)的數(shù)據(jù)

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

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

select * from table1;

select * from table2;

修改事件

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

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ù)時(shí),會(huì)觸發(fā)update_trigger_1觸發(fā)器,自動(dòng)更新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)用場景包括但不限于以下幾種:

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

總結(jié):

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

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

http://yzkb.51969.com/

好文閱讀

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

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

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

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

發(fā)布評論

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

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄