gpt4 book ai didi

mysql - 每次插入后更新一列

转载 作者:行者123 更新时间:2023-11-29 01:52:16 37 4
gpt4 key购买 nike

我有下面给出的表结构。

CREATE TABLE `sample` (
`PK_ID` varchar(10) NOT NULL,
`RQ_ID` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`BID_VAL` double NOT NULL DEFAULT '0',
`max_bid` double NOT NULL,
`Last_updated` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

max_bid 列必须自动生成,其中包含按 RQ_ID 分组的 max(BID_VAL)

我需要一个触发器,它将在 insert 之后更新 max_bid

谢谢。

最佳答案

你不能在导致触发器的同一个表中进行更新或插入,但你可以这样做:在插入之前更新记录的 max_bid

DELIMITER ||
CREATE TRIGGER `calculate_max_bid` BEFORE insert ON `sample` FOR EACH ROW
begin
DECLARE max_bid_val double;
SELECT
max(BID_VAL) into max_bid_val
FROM sample
WHERE
RQ_ID = new.RQ_ID
GROUP BY RQ_ID;
if max_bid_val > new.bid_val then
SET new.max_bid = max_bid_val;
ELSE
SET new.max_bid = new.BID_VAL;
end if;
END ||
DELIMITER ;

关于mysql - 每次插入后更新一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38411809/

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