《學習》11觸發器

2021-09-07 17:27:31 字數 2219 閱讀 1024

-------觸發器-------- 

use db;

select from sss;

create table sssbak like sss;

show create table sss;

show create table sssbak;

create table `sssbak` (

`sid` int(10) unsigned not null auto_increment,

`sname` varchar(10) not null,

`sscore` tinyint(3) unsigned default null,

`saddress` varchar(30) default null,

`stel` bigint(20) unsigned default null,

primary key (`sid`)

) engine=myisam default charset=utf8

create table `sss` (

`sid` int(10) unsigned not null auto_increment,

`sname` varchar(10) not null,

`sscore` tinyint(3) unsigned default null,

`saddress` varchar(30) default null,

`stel` bigint(20) unsigned default null,

primary key (`sid`)

) engine=myisam auto_increment=12 default charset=utf8

sss 學生資訊表

sssbak 學生補考表

truncate sss;

truncate sssbak;-- 清除表的內容

select from sss;

select from sssbak;

-- 建立觸發器 建立的物件為 new

delimiter

create trigger tt1 after insert on sss for each row

begin

declare ss tinyint;

set ss=new.sscore;

if ss60 then

insert into sssbak values(new.sid,new.sname,new.sscore,new.saddress,new.stel);

end if;

enddelimiter;

刪除表sss中的元素 在sssbak中相應的元素也刪除 刪除的物件為 old

delimiter

create trigger tt2 after delete on sss for each row

begin

delete from sssbak where sid=old.sid;

enddelimiter;

修改 old 修改之前 new 修改之後

delimiter

create trigger tt3 after update on sss for each row

begin

declare newss tinyint;

declare oldss tinyint;

set newss=new.sscore;

set oldss=old.sscore;

if newss=60 then

delete from sssbak where sid =new.sid;

else -- sss新的分數小於60的時候

replace into sssbak values(new.sid,new.sname,new.sscore,new.saddress,new.stel);

end if;

enddelimiter;

-- 使用觸發器,實質性相關的操作時,自動觸發的

insert into sss values(null,'張三',30,'北京',18290438501);

insert into sss values(null,'李四',90,'鄭州',18290438501);

-- 刪除觸發器

drop trigger tt1;

-- 檢視db資料庫中所有的觸發器

show triggers from `db`;

《學習》11觸發器

觸發器 use db select from sss create table sssbak like sss show create table sss show create table sssbak create table sssbak sid int 10 unsigned not nul...

Oracle11g學習 觸發器

1 觸發器 1.1 語法 語法 create or replace trigger 觸發器名 before after insert delete update of 列名 on 表名 for each row 說明 關鍵字 before 在操作完成前觸發 after 則是在操作完成後觸發 關鍵字 ...

觸發器學習

觸發器學習 查詢觸發器 select table owner,table name,trigger body from user triggers 刪除觸發器 drop trigger trigger name 但觸發器一般是這樣建的 create or replace 也就是如果存在的話,就可以替...