MySQL创建触发器报错1193:未知系统变量garagem_coberta求助
触发器错误1193的排查与解决
你的触发器报错主要是三个问题导致的:
- 字段引用错误:直接写
garagem_coberta会被MySQL当成系统变量,而它实际是apartamento表的字段。在触发器中,需要用NEW.garagem_coberta来引用当前待更新行的该字段(BEFORE UPDATE触发器里,NEW代表即将更新后的行数据)。 - 多余的WHERE子句:这是行级触发器(
FOR EACH ROW),触发逻辑针对每一行执行,不需要用WHERE指定行,直接对当前行的字段赋值即可。 - 语法遗漏:SET语句末尾没加分号,MySQL要求每条语句必须以分号结尾。
修正后的触发器代码如下:
delimiter // create trigger update_garagem_coberta before update on apartamento for each row begin if OLD.tipo = 'cobertura' then set NEW.garagem_coberta = 'sim'; end if; end ; // delimiter ;
内容的提问来源于stack exchange,提问作者Samssoler
相关产品推荐
相关产品推荐

