【发布时间】:2021-09-27 03:40:51
【问题描述】:
我正在使用内存表。它有几个 id 和一个计数器。所有数据为整数。
如果数据存在,我的代码将计数器更新为 1,如果不存在,我的代码将创建一行 counter=1。
我使用的查询是:
INSERT INTO linked_mem
( id1, id2, id31, id4, cnt)
VALUES (31316, 0, 557158967, 261470594, 1)
ON DUPLICATE KEY UPDATE cnt = cnt+1
偶尔(大约 5% 的插入)我得到“键 1 的重复条目 '[键号]'
可能是什么问题? ON DUPLICATE KEY UPDATE 部分不是应该处理重复键吗?
更新:添加创建真实表的表
CREATE TABLE `linked_mem` (
`li_sid` int(10) unsigned NOT NULL default '0',
`li_id1` int(10) unsigned NOT NULL default '0',
`li_cid1` int(10) unsigned NOT NULL default '0',
`li_id2` int(10) unsigned NOT NULL default '0',
`li_cid2` int(10) unsigned NOT NULL default '0',
`cnt` int(10) unsigned NOT NULL default '1',
`li_filter` int(10) unsigned NOT NULL default '0',
`li_group` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`li_id1`,`li_sid`,`li_cid1`,`li_cid2`,`li_group`,`cnt`,`li_id2`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1
【问题讨论】:
-
可以上传linked_mem的创建表吗
标签: mysql