#这是一个表
create table t_courses(
`id` int(11) not null auto_increment primary key,
`name` varchar(20) not null,
`score` int(4) not NULL default 0,
`userid` varchar(32) NOT NULL
)CHARSET=utf8;
#创建一个用户表 t_persons
create table t_persons(
`id` int(11) not null auto_increment primary key,
`name` varchar(30) not null,
`age` int(3) not null default 0,
`height` int(3) not null default 0,
`weight` int(3) not null default 0
)CHARSET=UTF8;
#trigger 扳机 触发器
/*
delimiter //
create trigger g_afterinsert_persons
after insert
on t_persons for each row
begin
insert into t_courses(`name`,`source`,`userid`) values ('入学教育',0,new.id);
end;
//
*/
DELIMITER //
CREATE TRIGGER g_afterinsert_persons
AFTER INSERT
ON t_persons FOR EACH ROW
BEGIN
INSERT INTO t_courses(`name`,`score`,`userid`) VALUES ('入学教育',0,new.id);
END
//
#删除触发器
drop trigger ;
#插入一条用户
insert into t_persons (`name`,`age`,`height`,`weight`) values ("张三",19,180,90);
INSERT INTO t_persons (`name`,`age`,`height`,`weight`) VALUES ("李四",19,180,90);
#更新事件触发器
delimiter //
create trigger g_afterupdate_persons
after update
on t_persons for each row
begin
if old.name='张三' then
update t_courses set score=0 where userid = old.id;
end if;
end
//
select * from t_courses where userid = 1;
#删除
drop trigger g_afterinsert_persons;
update t_persons set age=10 where name = "张三";
delimiter //
create trigger g_beforeinsert_persons
before insert
on t_persons for each row
begin
if length(new.name) < 3 then
set new.name="插入姓名的长度不能小于3";
end if;
end
//
#删除触发器
drop trigger g_beforeinsert_persons;
数据库触发器.txt