我的数据库中有这样的表格:
someID (int) | date (datetime) | a | b |
---------------------------------------
其中someID和date是我的主键。然后我使用这样的查询:
INSERT INTO theTable SET date='2014-12-07 11:00:00', someID = 25, a=1, b=0 ON DUPLICATE KEY UPDATE a = a + 1
问题在于,如果我更改someID值,数据库将创建一个新记录,但如果someID相同则不关心日期,即使它也被声明为主键。
你知道如何解决我的问题吗?
编辑我的完整架构:
CREATE TABLE `table` (
`someId` int(11) NOT NULL,
`date` datetime NOT NULL,
`a` int(11) NOT NULL DEFAULT '0',
`b` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`someId`,`date`),
) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
答案 0 :(得分:0)
从现在开始,它有效。似乎我有一个额外的索引键导致了这个问题。