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表

相关推荐
点云SLAM7 小时前
BOOS库中Graph模块boost::edge_reverse_t和boost::vertex_color_t解读
数据库·edge·图论·bfs·dfs/拓扑排序·boost库、
尽兴-7 小时前
《深入剖析:全面理解 MySQL 的架构设计》
数据库·mysql·数据库架构设计·理解mysql架构
在风中的意志7 小时前
[数据库SQL] [leetcode] 2388. 将表中的空值更改为前一个值
数据库·sql·leetcode
梦幻通灵8 小时前
Mysql字段判空实用技巧
android·数据库·mysql
酸菜牛肉汤面9 小时前
23、varchar与char的区别
数据库
To Be Clean Coder9 小时前
【Spring源码】getBean源码实战(三)
java·mysql·spring
AI题库9 小时前
PostgreSQL 18 从新手到大师:实战指南 - 2.5 Serverless PostgreSQL
数据库·postgresql·serverless
IT技术分享社区9 小时前
数据库实战:MySQL多表更新JOIN操作的底层原理与性能调优指南
数据库·mysql·程序员
廋到被风吹走10 小时前
【数据库】【Oracle】分区表与大表设计
数据库·oracle
UrSpecial10 小时前
InnoDB存储引擎
数据库·mysql