这是触发器
这是表Stracture:
id: int
item_counting: int
item_disterbute: int
item_stor: int
现在仅限更新:
BEGIN
IF item_counting = NEW.item_disterbute THEN
SET NEW.item_stor = 2;
ELSEIF item_counting > NEW.item_disterbute THEN
SET NEW.item_stor = 3;
ELSE
SET NEW.item_stor = 4;
END IF;
END
现在我如何保留 item_counting
的列此处更新错误:1054 - Unknown column 'item_counting' in 'field list'
答案 0 :(得分:0)
您可以使用关键字old
或new
来获取列值,具体取决于触发器。
假设您正在运行before update
触发器,那么使用old.column_name
将为您提供当前其拥有的值,并且new.column_name
是为更新提供的值,您可以设置自己的
所以在你的情况下,它将是
IF old.item_counting = NEW.item_disterbute THEN
SET NEW.item_stor = 2;
ELSEIF old.item_counting > NEW.item_disterbute THEN
SET NEW.item_stor = 3;
ELSE
SET NEW.item_stor = 4;
END IF;