怎样使用mysql新建触发器

2023年 9月 8日 104.2k 0

MySQL是一款常见的数据库管理系统,其拥有触发器功能,可以在数据表的数据被操作时进行自动化操作。在MySQL中,新建触发器十分简单,下面我们来介绍一下具体步骤。

怎样使用mysql新建触发器

首先,我们需要进入MySQL客户端,输入以下命令创建数据库:

CREATE DATABASE student;
USE student;

接下来,我们新建一个名为“score”的数据表,用于存储学生的成绩信息:

CREATE TABLE score (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
subject VARCHAR(20) NOT NULL,
score INT NOT NULL
);

我们将以学生考试成绩表为例,来演示创建触发器的过程。我们需要完成以下任务:当用户向score表插入一行数据时,自动进行以下操作:

  1. 如果成绩小于60分,则将该记录插入fail表中;
  2. 如果成绩在60分与70分之间,则将该记录插入pass表中;
  3. 如果成绩大于等于80分,则将该记录插入excellent表中。

为了完成以上操作,我们需要创建三个表,分别为fail、pass、excellent。

CREATE TABLE fail (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
subject VARCHAR(20) NOT NULL,
score INT NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'FAIL'
);
CREATE TABLE pass(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
subject VARCHAR(20) NOT NULL,
score INT NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'PASS'
);
CREATE TABLE excellent(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
subject VARCHAR(20) NOT NULL,
score INT NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'EXCELLENT'
);

接下来,我们可以开始创建触发器了。在MySQL客户端中,输入以下命令:

CREATE TRIGGER insert_score
AFTER INSERT ON score
FOR EACH ROW
BEGIN
IF NEW.score

以上代码将在每次向score表中插入数据时自动执行,如果成绩小于60,则将该记录插入fail表中,如果成绩在60分与70分之间,则将该记录插入pass表中,如果成绩大于等于80分,则将该记录插入excellent表中。

通过以上步骤,我们已经成功地创建了一个触发器,它可以在数据表中数据被操作时自动化执行我们想要的操作,为数据管理提供了极大的方便。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论