我是个新手,似乎找不到和我类似的情况,我相信答案很简单。
我有两列,一列是预定义的牌照(“牌照”),另一列是用户输入的牌照(“企业牌照”)。
我制作了第三列,它将是一种错误检查列,它的值将由触发器输入。基本上,如果输入的车牌与预定义的车牌相同,则将第三列设置为0,如果输入的车牌为空(尚未输入任何内容)(将其设置为1,如果两者中都有值但它们不匹配,则将其设置为2。但我一直收到脚本错误。我不确定是我的语法还是我做错了。
感谢大家的帮助!
CREATE TRIGGER MatchPlateOnUPDATE
BEFORE UPDATE ON wp_wpdatable_3
FOR EACH ROW
BEGIN
IF (NEW.enterlicenseplate is NULL) THEN
UPDATE wp_wpdatatable_3
SET MatchingPlates = 0;
ELSEIF (NEW.enterlicensplate = New.licenseplate) THEN
UPDATE wp_Wpdatatable_3
SET MatchingPlates = 1;
ELSE UPDATE wp_Wpdatatable_3
SET MatchingPlates = 2;
END发布于 2020-06-03 21:14:23
if语句的问题在于您遗漏了结束end if;。
但是还有更多的问题:触发器不能操作它所触发的表-即使它可以,查询基本上也会更新表中的所有行,因为您的update没有where子句。
这里只需要修改即将插入的记录中matchingPlates列的值:
delimiter //
create trigger matchplateonupdate
before update on wp_wpdatable_3
for each row
begin
if new.enterlicenseplate is null then
set new.matchingplates = 0;
elseif new.enterlicensplate = new.licenseplate then
set new.matchingplates = 1;
else
set new.matchingplates = 2;
end if;
end;
//
delimiter ;https://stackoverflow.com/questions/62173492
复制相似问题