gpt4 book ai didi

mysql 触发更新以填充另一个表

转载 作者:行者123 更新时间:2023-11-28 23:59:20 26 4
gpt4 key购买 nike

我是这个 TRIGGER 的新手,它让我很受打击。

目的是在每次表价格发生价格变化时填充价格历史表。

到目前为止,我的尝试是在每次更新一个价格时获取所有价格变化,或者根本不起作用。

我基本没搞懂这个逻辑,所以我可以限制在更新的一个价格,而不是所有的更新。

下面是一段伪代码。

DELIMITER //

CREATE TRIGGER price_update
AFTER UPDATE
ON prices FOR EACH ROW

BEGIN

INSERT INTO prices_history (version_id,price,data_change)
SELECT version_id, price, time_update FROM prices WHERE????? ;
END //
DELIMITER ;

表价(汇总)

version_id smallint(4) primary
price decimal (10,0)
time_update timestamp

表价格_历史

price_id int(5) primary
version_id smallint(4)
price decimal (10,0)
data_change datetime

最佳答案

不要在触发器内执行SELECT,因为那样会使用表中的所有行。您可以直接使用更改行中的列。您也可以使用 OLD.NEW. 来区分 UPDATE 前后的值。

DELIMITER $$
CREATE TRIGGER price_update
BEFORE UPDATE ON prices
FOR EACH ROW
BEGIN

INSERT INTO prices_history SET
price = NEW.price,
version_id = NEW.version_id, // or OLD.version_id
data_change = NEW.time_update;
END$$
DELIMITER ;

关于mysql 触发更新以填充另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30465999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com