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表插入一行数据时,自动进行以下操作:
- 如果成绩小于60分,则将该记录插入fail表中;
- 如果成绩在60分与70分之间,则将该记录插入pass表中;
- 如果成绩大于等于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表中。
通过以上步骤,我们已经成功地创建了一个触发器,它可以在数据表中数据被操作时自动化执行我们想要的操作,为数据管理提供了极大的方便。