亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql中的觸發(fā)器定義與使用

 更新時間:2022年11月30日 16:20:59   作者:菜到極致就是渣  
MySQL?的觸發(fā)器和存儲過程一樣,都是嵌入到?MySQL?中的一段程序,是?MySQL?中管理數(shù)據(jù)的有力工具,本文給大家詳細介紹mysql觸發(fā)器的定義語法知識,感興趣的朋友一起看看吧

一、觸發(fā)器的介紹

觸發(fā)器是與表有關的數(shù)據(jù)庫對象,指在insert/update/delete 之前或之后,觸發(fā)并執(zhí)行

觸發(fā)器中定義的SQL語句集合。觸發(fā)器的這種特性可以協(xié)助應用在數(shù)據(jù)庫端確保數(shù)據(jù)的

完整性,日志記錄,數(shù)據(jù)校驗等操作。

使用別名old和new來引用觸發(fā)器中發(fā)生變化的記錄內(nèi)容,這與其它的數(shù)據(jù)庫是相似的。

現(xiàn)在觸發(fā)器還只支持行級觸發(fā),不支持語句級觸發(fā)。

  觸發(fā)器類型                   new和old
 insert型觸發(fā)器        new表示將要揮著已經(jīng)新增的數(shù)據(jù)
 update型觸發(fā)器        old表示修改之前的數(shù)據(jù),new表示將要或者已經(jīng)修改后的數(shù)據(jù)
 delete型觸發(fā)器        old表示將要或者已經(jīng)刪除的數(shù)據(jù)

二、觸發(fā)器的語法

 語法:
   1:創(chuàng)建觸發(fā)器語句
   create trigger 觸發(fā)器名稱 before/after  insert/update/delete on 表名 for each row
    begin
      sql語句
    end;
   這里的after和before表示的是增刪改之后還是之前觸發(fā)的
   2:查看觸發(fā)器語句
     show triggers;
   3:刪除觸發(fā)器
     drop trigger 數(shù)據(jù)庫名.觸發(fā)器的名字;(如果沒有指定數(shù)據(jù)庫的名字,那么默認是當前數(shù)據(jù)庫)

(1)insert觸發(fā)器

create table user_logs(
    opera_text varchar(1000) comment '插入的·內(nèi)容',
    opera_time datetime comment '插入的時間',
    opera varchar(20) comment '操作的類型,insert/delete/update'
 );
create trigger tb_user_insert_tigger
    after insert on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera)
        values(concat('插入的名字=',new.name,',插入的年齡=',new.age),now(),'insert');
    end;
show triggers;
insert into sp(age, name) values (100,'大魔王');

(2)update觸發(fā)器

create trigger tb_user_update_trigger
    after update on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera) values
        (concat('更新前的名字=',old.name,' 更新前的年齡=',old.age,' 更新后的名字=',new.name,' 更新后的年齡=',new.age),now(),'update');
    end;
show triggers;
update sp set age=1000 where name='李四';

(3)delete觸發(fā)器

create trigger tb_user_delete_trigger
    after delete on sp for each row
    begin
        insert into user_logs(opera_text, opera_time, opera)
            values(concat('刪除的名字=',old.name,' 刪除前的年齡=',old.age),now(),'delete');
    end;
show triggers;
delete from sp where name='李四';

到此這篇關于Mysql中的觸發(fā)器定義與使用的文章就介紹到這了,更多相關MySQL觸發(fā)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論