MySQL触发器 - 不插入正确值
如果每行更新的数据不等于每行当前数据,则此触发器的目标是将每行旧数据插入表中。MySQL触发器 - 不插入正确值
delimiter //
CREATE TRIGGER history BEFORE UPDATE ON table1
FOR EACH ROW
BEGIN
IF NEW.salePrice <> OLD.salePrice THEN
INSERT INTO history_price (modelNumber,salePrice)
VALUES ('modelNumber','OLD.salePrice');
ELSEIF NEW.salePrice = OLD.salePrice THEN
SET NEW.salePrice = OLD.salePrice;
END IF;
END;//
delimiter ;
总之,这个概念应该工作,但插入不工作。它只是插入实际文本,而不是值。
更具体地说:
INSERT INTO history_price (modelNumber,salePrice)
VALUES
('modelNumber','OLD.salePrice');
我触发这部分按字面插入modelNumber,并OLD.salePrice到我的历史表,如果更新的值不相等。
这个查询有什么问题?
modelNumber和OLD.salePrice可能不应该用单引号引起来。
这工作。现在,它执行了INSERT OLD.salePrice,但没有插入modelNumber – 2011-06-16 20:10:13
现在modelNumber会发生什么情况? – MGZero 2011-06-16 20:15:08
我只是不得不改变它OLD.modelNumber – 2011-06-16 20:16:01
尝试过,将其更改为
insert into history_price (old.ModelNumber,old.salePrice)
不要你只想删除引号轮2场?或者我是不是很厚? – BugFinder 2011-06-16 20:05:44
我想插入值。我正在做这些特定领域的更新,我想插入旧字段的行内容。 – 2011-06-16 20:06:45
我知道,但是通过在字段名称周围放置单引号,您可以像插入到history_price(modelNumber,salePrice)值(“joe”,“blogs”)中那样好插入 – BugFinder 2011-06-16 20:08:14