mysq Navicat 8中 l触发器 请教
发布网友
发布时间:2022-04-26 13:16
我来回答
共1个回答
热心网友
时间:2022-04-13 02:00
-- tr_tbl_character 是触发器名字, 你自己取一个
CREATE TRIGGER tr_tbl_character
BEFORE UPDATE ON tbl_character
FOR EACH ROW
BEGIN
IF new.fld_btLevel >= 150 THEN
-- 等级达到150以后,更新fld_btLevel的值为0
SET new.fld_btLevel = 0;
-- 更新表中的另外几个字段...
-- SET new.字段名称 = 数值;
END IF;
END;
刚才去查询了一下手册
MySQL 支持 针对特定条件的触发 , 也就是在触发器定义上面, 加一个 WHEN 条件
从而实现, 满足这个条件了, 才触发。
上面那个代码, 是每次都触发, 触发了, 才判断条件。
下面这个代码, 是满足条件了, 才触发, 触发了, 就不判断了, 直接更新了。
-- tr_tbl_character 是触发器名字, 你自己取一个
CREATE TRIGGER tr_tbl_character
BEFORE UPDATE ON tbl_character
FOR EACH ROW
WHEN (new.fld_btLevel > 150)
BEGIN
-- 等级达到150以后,更新fld_btLevel的值为0
SET new.fld_btLevel = 0;
-- 更新表中的另外几个字段...
-- SET new.字段名称 = 数值;
END;