gpt4 book ai didi

php - MySQL INSERT IGNORE 向非索引列添加 1

转载 作者:行者123 更新时间:2023-12-01 00:41:18 25 4
gpt4 key购买 nike

我正在用 PHP while 循环构建一个小报告。我在 while() 循环中运行的查询是这样的:

INSERT IGNORE INTO `tbl_reporting` SET datesubmitted = '2015-05-26', submissiontype = 'email', outcome = 0, totalcount = totalcount+1

我期望 totalcount 列在每次运行查询时递增。但数字保持在 1。UNIQUE 索引组成前 3 列。

这是表架构:

CREATE TABLE `tbl_reporting` (
`datesubmitted` date NOT NULL,
`submissiontype` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`outcome` tinyint(1) unsigned NOT NULL DEFAULT '0',
`totalcount` mediumint(5) unsigned NOT NULL DEFAULT '0',
UNIQUE KEY `datesubmitted` (`datesubmitted`,`submissiontype`,`outcome`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

当我将查询修改为常规 UPDATE 语句时:

UPDATE `tbl_reporting` SET totalcount = totalcount+1 WHERE datesubmitted = '2015-05-26' AND submissiontype = 'email' AND outcome = 1

...有效。

INSERT IGNORE 是否不允许添加数字?还是我的原始查询格式不正确?

我想使用 INSERT IGNORE,否则我将不得不先查询原始记录,然后插入,最后更新。

最佳答案

想想你在做什么:

INSERT .... totalcount=totalcount+1

要计算totalcount+1,DB 必须检索totalcount 的当前值...这还不存在,因为您是 CREATING 一条新记录,NO 现有数据可从中检索“旧”值。

例如你在去商店买原料之前就已经尝试吃蛋糕了,更不用说混合/烘烤它们了。

关于php - MySQL INSERT IGNORE 向非索引列添加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31754435/

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