gpt4 book ai didi

mysql - SQL 更新时更改计数器

转载 作者:行者123 更新时间:2023-11-30 00:21:59 25 4
gpt4 key购买 nike

在行更新后是否有任何方法可以更改“计数器”列。

例如在此架构中:

CREATE TABLE test
(`ID` int, `Name` varchar (20), `Counter` int);


INSERT INTO test
(`ID`, `Name`, `Counter`)
VALUES
(1, 'Will', 0),
(2, 'James', 0);

如果我想像这样更新第二个结果:

UPDATE test
SET Name = 'John'
WHERE id = 2

我希望计数器也更改为 1。它是否与模式有关,例如更新某些内容......? (我不想用更新查询来更新计数器)

此外,如果可能的话,是否有任何方法可以在 10 天或一段时间后将计数器设置回 0?

最佳答案

使用触发器:

CREATE trigger inc_counter
BEFORE UPDATE ON test
FOR EACH ROW
SET new.Counter = new.Counter + 1

对于第二部分,10 天后重置计数器,您需要额外的列:

last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

然后您可以执行一个定期任务:

UPDATE test
SET counter = -1
WHERE last_updated < DATE_SUB(NOW(), INTERVAL 10 DAY);

此处需要将其设置为-1,因为触发器在更新过程中加1。

关于mysql - SQL 更新时更改计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161304/

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