微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL触发结果-1064

如何解决MySQL触发结果-1064

我需要在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;

这是一个演示:

DEMO

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。