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表

相关推荐
周杰伦fans4 分钟前
在C#中,`StringContent` 是 `HttpContent` 的一个派生类
开发语言·数据库·c#
P***84397 分钟前
SQL多行数据合并到一行中的一个字段
数据库·sql
j***294812 分钟前
【MySQL】数据库和表的操作
数据库·mysql·oracle
梅梅绵绵冰19 分钟前
ssm整合框架
数据库·mybatis
z***026034 分钟前
springboot整合modbus实现通讯
数据库·spring boot·后端
CNRio37 分钟前
Oracle 9i-11g全平台安装介质及补丁集下载指南(2025年最新有效链接)
数据库·oracle
L***865341 分钟前
SQL 注入详解:原理、危害与防范措施
数据库·sql·oracle
弥生赞歌44 分钟前
MySQL 数据库集群高可用与可视化监控平台搭建实验报告
数据库·mysql
e***71671 小时前
mysql用户名怎么看
数据库·mysql
管理大亨1 小时前
MySQL数据实时同步Redis全攻略
数据库·redis·mysql