gpt4 book ai didi

mysql - 为什么 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1?

转载 作者:可可西里 更新时间:2023-11-01 08:00:44 25 4
gpt4 key购买 nike

什么会导致 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1,这是我使用的 SQL:

INSERT INTO banner_view (banner_id,date,views) 
VALUES ('10',CURDATE(),'1')
ON DUPLICATE KEY UPDATE views=(views+1)

这是数据库架构:

CREATE TABLE `banner_view` (
`banner_id` int(11) UNSIGNED NOT NULL ,
`date` date NOT NULL ,
`views` int(10) UNSIGNED NOT NULL ,
PRIMARY KEY (`banner_id`, `date`),
FOREIGN KEY (`banner_id`) REFERENCES `banner` (`banner_id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE INDEX `banner_id` USING BTREE (`banner_id`, `date`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
;

我检查了 MySQL 日志以确保查询恰好被调用了 3 次,但输出将是 6 次,有什么问题吗?

更新:此方法在 smarty 模板中调用,例如:{app_banner::getRandomBanner()}

最佳答案

检查您是否没有在代码中调用查询两次 - 它本身按预期工作。

关于mysql - 为什么 ON DUPLICATE KEY UPDATE 语句将值增加 2 而不是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520030/

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