相关疑难解决方法(0)

MySQL INSERT .... ON DUPLICATE UPDATE - 在自动增量中添加一个

我通过简单的点击计数器跟踪访问我的所有http_user_agents.下面在数据库中插入http_user_agent,此字段为Case Insensitive且为Unique.因此,当我们尝试插入它并找到DUPLICATE KEY时,它会向hits字段添加1.

问题是我的自动增量字段仍然增加,即使我们没有插入字段.我怎么能阻止这个?

$sql = "INSERT INTO `db_agency_cloud`.`tblRefHttpUsersAgent` SET `http_users_agent` = :UsersAgent, `created_ts` = NOW() ON DUPLICATE KEY UPDATE `hits` = `hits` + 1";
Run Code Online (Sandbox Code Playgroud)

这是表结构:

CREATE TABLE `tblRefHttpUsersAgent`
(
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`http_users_agent` varchar(255) NOT NULL,
`hits` int(20) unsigned NOT NULL DEFAULT '1',
`created_ts` datetime NOT NULL,
`activity_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `http_users_agent` (`http_users_agent`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)

php mysql innodb

13
推荐指数
2
解决办法
5858
查看次数

标签 统计

innodb ×1

mysql ×1

php ×1