MySQL語法複習 觸發器與事件

2021-07-23 22:27:53 字數 2614 閱讀 1767

1.班級表 class(班級號 classid, 班內學生數 stucount)學生表 student(學號 stuid, 所屬班級號 classid),要建立觸發器來使班級表中的班內學生數隨著學生的新增自動更新,**如下:

​delimiter $$

create trigger tri_student after insert on student for each row

begin

declare c int;

set c = (select stucount from class where classid = new.classid)​​;

update class set stucount = c+1 where classid = new.​classid;

end $$​

2.delimiter $$

drop trigger if exists update_name $$

create trigger update_name after update on user for each row

begin

if new.name!=old.name then

update comment set name = new.name where comment.​uid= old.id;

end ih;

end $$

3.​事件

3.1 檢視事件是否開啟

show variables like 'event_scheduler'; or select @@ event_scheduler;

3.2 開啟事件

set global event_scheduler = on;

3.3建立乙個每隔3秒往test表插入一條資料的事件

create event if not exists event_insert

on schedule every 3 second

do insert into test(id,t1) values (null,now());​

​3.4建立乙個從2023年8月22日21點45分開始到10分鐘後結束的事件

create event if not exists ev_insert

on schedule every 3 second

starts '2012-08-22 21:45:00'

end '2012-08-22 21:45:00' + interval 10 minute

do truncate table test;​​

1.班級表 class(班級號 classid, 班內學生數 stucount)學生表 student(學號 stuid, 所屬班級號 classid),要建立觸發器來使班級表中的班內學生數隨著學生的新增自動更新,**如下:

​delimiter $$

create trigger tri_student after insert on student for each row

begin

declare c int;

set c = (select stucount from class where classid = new.classid)​​;

update class set stucount = c+1 where classid = new.​classid;

end $$​

2.delimiter $$

drop trigger if exists update_name $$

create trigger update_name after update on user for each row

begin

if new.name!=old.name then

update comment set name = new.name where comment.​uid= old.id;

end ih;

end $$

3.​事件

3.1 檢視事件是否開啟

show variables like 'event_scheduler'; or select @@ event_scheduler;

3.2 開啟事件

set global event_scheduler = on;

3.3建立乙個每隔3秒往test表插入一條資料的事件

create event if not exists event_insert

on schedule every 3 second

do insert into test(id,t1) values (null,now());​

​3.4建立乙個從2023年8月22日21點45分開始到10分鐘後結束的事件

create event if not exists ev_insert

on schedule every 3 second

starts '2012-08-22 21:45:00'

end '2012-08-22 21:45:00' + interval 10 minute

do truncate table test;​​

mysql ,觸發器語法

1.語法 命名規則 create trigger 觸發器名稱 on 表名稱 for each row 觸發器sql語句 觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.這裡我有個習慣 就是用表的名字 觸發器型別的縮寫.因此如果是表t26,觸發器是在...

mysql複習(1) 觸發器

顧名思義,觸發就是滿足一定條件下產生什麼動作,完整的定義是觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。1 create trigger trigger name trigger time trigger event on tb name for each row...

mysql簡單的觸發器語法 mysql觸發器 學習

1.說明 觸發器的定義就是說某個條件成立的時候,你觸發器裡面所定義的語句就會被自動的執行。因此觸發器不需要人為的去呼叫,也不能呼叫。然後,觸發器的觸發條件其實在你定義的時候就已經設定好的了。這裡面需要說明一下,觸發器可以分為語句級觸發器和行級觸發器。簡單的說就是語句級的觸發器可以在某些語句執行前或執...