创建数据库

1
2
create database stu;
use stu;

创建表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//我们触发器建立的表
create table class(
Cno char(4),
Cname varchar(10),
teacher varchar(20)
);

// 触发器触发后,呈现触发结果的表
create table student(
Sno char(10),
Sname varchar(20),
sex char(1),
age int,
dept varchar(20)
);

创建触发器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//插入的触发器
create trigger student_insert_trigger
after insert on class //当我们在这个表插入数据的时候,就会触发触发器
for each row
//这个地方是触发器执行的具体内容
insert into student values('2020212913' , '张永记' , '男' , 20 , '信息与通信工程学院');

//更新的触发器
create trigger student_update_trigger
after update on class //当我们在这个表更新数据的时候,就会触发触发器
for each row
//这个地方是触发器执行的具体内容
insert into student values('2020212913' , '张永记' , '男' , 20 , '信息与通信工程学院');

//删除的触发器
create trigger student_delete_trigger
after delete on class //当我们在这个表删除数据的时候,就会触发触发器
for each row
//这个地方是触发器执行的具体内容
insert into student values('2020212913' , '张永记' , '男' , 20 , '信息与通信工程学院');

查看当前的触发器

1
show triggers;

删除指定的触发器

1
drop trigger student_insert_trigger;

1
2
3
4
5
6
1、记得主键什么的约束
2、以前的数据用old.属性获取,新的属性用new.属性获取
3、‘;’分号及代表终止,我们在写语句的时候不可避免的会使用,但是又不该终止,所以我们可以先定义结束符
delimiter $; //这样分号就不会终止程序了,而是$代表程序终止结束,这个结束符可以根据自己的意向随便取。
4、修改表的属性的数据类型等约束条件
alter table 表明 modify column 列表 修改后的表的属性的数据类型等约束条件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
create trigger sc_insert_trigger
after insert on sc
for each row
begin
if new.score >= 60
then
update student set total = total + (select credit from course where cno = new.cno) where sno = new.sno;
endif;
end;

cookie:

create trigger score_trigger
after insert on sc
for each row
begin
if new.score>=60
then
    update student
    set total=total+(select credit from course where cno=new.cno)
    where student.sno=new.sno;
end if;
end $$