问题描述
我需要在sql中创建一个触发器来执行以下操作: wordpress表“选项”在ID 1和ID 2中具有网站的option_value URL。
如果该URL在该特定位置(id 1和id2)被更改,则触发器应运行以设置回old.option_value
CREATE TRIGGER tr_up_otpions_value
BEFORE UPDATE ON option_value FOR EACH ROW
BEGIN
IF (:old.option_value = 'https://example.com') then
:new.option_value := 'https://example.com';
end if;
end;
但是出现以下错误:
#1064 - Error ':old.option_value = 'https://example.com') then
:new.option_value := 'h...' Row 4
解决方法
您需要从新旧值中删除:
符号
还需要添加set关键字。
在那之后,如果您有一个看起来像这样的表:
create table Zr_options (option_value varchar(500))
然后此“更新前触发器”将起作用:
CREATE TRIGGER tr_up_otpions_value
BEFORE UPDATE
ON Zr_options FOR EACH ROW
BEGIN
IF old.option_value = 'https://example.com' then
set new.option_value = 'https://example.com';
end if;
end;
这是一个演示: