MySQL AFTER INSERT触发器
 
 
 在表中发生插入事件时,将自动调用MySQL中的插入触发器之后。在本文中,我们将学习如何使用其语法和示例创建插入后触发器。
 
语法
 
 以下是创建
 插入后 在MySQL中触发: 
 
 
  
  
CREATE TRIGGER trigger_name 
AFTER INSERT
ON table_name for EACH ROW
trigger_body ;
 
   
  
  AFTER INSERT触发语法参数可以解释如下: 
 
首先,我们将指定要创建的触发器的名称。它在架构中应该是唯一的。 
第二,我们将指定触发动作时间,该时间应为AFTER INSERT子句以调用触发器。 
第三,我们将指定与触发器关联的表的名称。它必须写在ON关键字之后。如果不指定表名,则触发器将不存在。 
最后,我们将指定触发主体,其中包含一个或多个在激活触发器时执行的语句。 
 如果要执行多个语句,我们将使用
  BEGIN END 块,该块包含一组SQL查询来定义触发器的逻辑。请参见以下语法: 
 
 
  
  
DELIMITER $ 
CREATE TRIGGER trigger_name AFTER INSERT
ON table_name for EACH ROW
BEGIN
   variable declarations
   trigger code
END$
DELIMITER ;
 
   
  
限制
 
我们可以在AFTER INSERT触发器中访问 NEW 值,但无法更改。 
我们无法访问 OLD ,如果尝试访问OLD值,则会出现错误,因为INSERT触发器上没有OLD。 
我们无法在 VIEW 上创建AFTER INSERT触发器。 
 AFTER INSERT触发器示例
 
 让我们了解如何使用
  在 MySQL 中创建一个触发器 语句,并提供示例。
 
 假设我们已创建一个名为" 
  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 //
 
   
  
 如果成功创建触发器,我们将得到如下输出: 
 
 
如何调用AFTER INSERT触发器?
 
 我们可以使用以下语句来调用上面创建的触发器: 
 
 
  
  
mysql> INSERT INTO student_info VALUES 
(10, 110, 'Alexandar', 'Biology', 67, '2347346438');
 
   
  
 在执行更新查询后已修改的表为student_detail。我们可以使用SELECT语句验证它,如下所示: 
 
 
  
  
mysql> SELECT * FROM student_detail;
 
   
  
 
 
 在此输出中,我们可以看到在将值插入到如何在MySQL工作台中创建AFTER INSERT触发器? 
 
  要创建一个after使用此工具插入触发器,我们首先需要
  启动 MySQL Workbench 并使用我们之前创建的用户名和密码。我们将显示如下屏幕: 
 
 
 
 
 
  现在执行以下操作创建AFTER INSERT触发器的步骤: 
 
 
 
   1、转到导航选项卡,然后单击
   Schema菜单,其中包含MySQL服务器中所有可用的数据库。
 
 
 
   2、选择数据库(例如,mystudentdb),双击它显示包含表,视图,函数和存储过程的
  子菜单。参见下面的屏幕。
 
 
 
 
 
   3、展开
  表格子菜单,然后选择要在其上创建触发器的表格。选择表后,右键单击所选表(例如,
   ,mystudentdb),然后单击"更改表"选项。参见下图: 
 
 
 
 
 
   4、单击
   Alter Table 选项,将显示以下屏幕: 
 
 
 
 
 
   5、现在,单击上一部分红色矩形框中显示的
  "触发"选项卡,然后选择"定时/事件" 
  插入后。我们将注意到,有一个
  (+)图标按钮可添加触发器。单击该按钮,我们将基于选择时间/事件在触发器上获得默认代码: 
 
 
 
 
 
   6、现在,完成触发器代码,再次检查它们,如果没有发现错误,请单击"应用"按钮。
 
 
 
 
 
   7、单击"应用"按钮后,单击
  完成按钮以完成操作。
 
 
 
 
 
   8、如果查看架构菜单,则可以在
   student_info 表下看到
   AFTER_INSERT_detail 触发器,如下所示: