mysql触发器对同一张表做操作_MySql 触发器对同表操作

触发器初始结构:

DELIMITER $$

CREATE

TRIGGER `数据库名`.`触发器名` BEFORE/AFTER INSERT/UPDATE/DELETE

ON `数据库名`.`表名`

FOR EACH ROW BEGIN

-- 逻辑、条件语句

END$$

DELIMITER ;

目的:当一张表中的某个字段值更新为特定值时,触发更新本条数据的另一字段值

( 示例:根据 prj_base_info 表中的 project_status 的值判断是否是600时,触发更新同表的 complete_time 字段的时间为系统当前时间 )

开始写出的触发器如下所示

DROP TRIGGER IF EXISTS update_complete_time;

DELIMITER $

CREATE TRIGGER update_complete_time AFTER UPDATE

ON prj_base_info FOR EACH ROW

BEGIN

IF (new.project_status=600)

THEN

UPDATE prj_base_info

SET complete_time =DATE_FORMAT(NOW(), '%Y-%m-%d')

WHERE prj_base_info.id = new.id;

END IF;

END $

执行结果没有问题,创建触发器成功,但是执行 update 语句进行测试如下报错,提示:无法更新存储函数/触发器中的表 &

你可能感兴趣的:(mysql触发器对同一张表做操作_MySql 触发器对同表操作)