mysql基础之触发器的简单使用

1.建立学生信息表

sql 复制代码
-- 触发器
-- 建立学生信息表
create table s1(
                   id int unsigned auto_increment,
                   name varchar(30),
                   score tinyint unsigned,
                   dept varchar(50),
                   primary key(id)
);

2.建立学生补考信息表

sql 复制代码
-- 建立学生补考信息表
create table s2 like s1;

3.建立触发器(一共建立了三个触发器)

sql 复制代码
-- 建立触发器
-- 插入触发器
delimiter //
create trigger t1 after insert on s1 for each row
begin
    if NEW.score<60 then
        insert into s2 values(new.id,new.name,new.score,new.dept);
    end if;
end//
delimiter ;
-- 删除触发器
delimiter //
create trigger t2 after delete on s1 for each row
begin
    delete from s2 where old.id = id;
end//
delimiter ;
-- 更新触发器
delimiter //
create trigger t3 after update on s1 for each row
begin
    if new.score < 60 then
        replace into s2 value(new.id,new.name,new.score,new.dept);
    else
        delete from s2 where id = new.id;
    end if;
end//
delimiter ;

4.插入数据

sql 复制代码
-- 插入数据
insert into s1 value(null,'李四',60,'计算机科学');
insert into s1 value(null,'赵六',30,'会计');
insert into s1 value(null,'李四玉',70,'计算机科学');
insert into s1 value(null,'周五',80,'英语');
insert into s1 value(null,'赵强',10,'计算机科学');
insert into s1 value(null,'王七',98,'英语');

5.查询结果

sql 复制代码
select * from s2;
select * from s1;

查询s1表

查询s2表

相关推荐
全堆鸿蒙3 分钟前
鸿蒙应用开发实战【36】— 数据查询优化:predicates 链式调用
数据库·harmonyos·鸿蒙系统
91刘仁德10 分钟前
MySQL 数据库基础操作知识点整理
数据库·mysql·oracle
IvorySQL8 小时前
PG 日报|新增 VACUUM 全维度统计信息补丁迭代
数据库·人工智能·postgresql·ivorysql
白露与泡影10 小时前
Redis 缓存实战:雪崩、穿透、击穿一次讲透
数据库·redis·缓存
赵渝强老师12 小时前
【赵渝强老师】使用Oracle可传输的表空间迁移数据
数据库·oracle
IpdataCloud13 小时前
跨区服玩家延迟高怎么办?用IP离线库自动分配到最近服务器
数据库·tcp/ip·github·php·ip
wuqingshun31415914 小时前
MYSQL默认的事务隔离级别是什么?为什么选择这个级别?
数据库·mysql
空中湖14 小时前
电池简史(五):极限之梦与终章——锂硫、锂空气、量子电池,以及你该知道的电池投资与生活指南
数据库·程序人生
蓝胖子酱15 小时前
在 Electron 中用 electron-store 实现加密存储与自定义格式文件
前端·javascript·数据库
snow@li16 小时前
Redis:数据库语法速查表 / 全景梳理
数据库·redis·缓存