在表中发生插入事件时,在MySQL中插入触发器之后,将自动调用它。在本文中,无涯教程将学习如何使用其语法和示例创建插入后触发器。
以下是在MySQL中创建 AFTER INSERT 触发的语法:
CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW trigger_body ;
AFTER INSERT触发器语法参数可以解释如下:
如果要执行多个语句,将使用 BEGIN END 块,该块包含一组SQL查询,以定义触发器的逻辑。请参见以下语法:
DELIMITER $$ CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW BEGIN variable declarations trigger code END$$ DELIMITER ;
让无涯教程了解如何使用
假设创建了一个名为" student_info "的表,如下所示:
CREATE TABLE student_info ( stud_id int NOT NULL, stud_code varchar(15) DEFAULT NULL, stud_name varchar(35) DEFAULT NULL, subject varchar(25) DEFAULT NULL, marks int DEFAULT NULL, phone varchar(15) DEFAULT NULL, PRIMARY KEY (stud_id) )
接下来,无涯教程将一些记录插入该表中,然后执行 SELECT语句以查看表数据,如下所示:
同样,无涯教程将创建一个名为" student_detail" 的新表,如下所示:
CREATE TABLE student_detail ( stud_id int NOT NULL, stud_code varchar(15) DEFAULT NULL, stud_name varchar(35) DEFAULT NULL, subject varchar(25) DEFAULT NULL, marks int DEFAULT NULL, phone varchar(15) DEFAULT NULL, Lasinserted Time, PRIMARY KEY (stud_id) );
接下来,将使用CREATE TRIGGER语句在 student_info 表上创建一个 after_insert_details 触发器。在表上执行插入操作后,将触发此触发器。
mysql> DELIMITER // mysql> Create Trigger after_insert_details AFTER INSERT ON student_info FOR EACH ROW BEGIN INSERT INTO student_detail VALUES (new.stud_id, new.stud_code, new.stud_name, new.subject, new.marks, new.phone, CURTIME()); END //
如果触发器创建成功,无涯教程将获得如下输出:
无涯教程可以使用以下语句来调用上面创建的触发器:
mysql> INSERT INTO student_info VALUES (10, 110, 'Alexandar', 'Biology', 67, '2347346438');
执行更新查询后已修改的表为student_detail。可以使用SELECT语句来验证它,如下所示:
链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-after-insert-trigger.html
来源:LearnFk无涯教程网
mysql> SELECT * FROM student_detail;
在此输出中,无涯教程可以看到,在将值插入到student_info表中时,student_detail表将通过调用触发器自动填充记录。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)