在包含datetime的重复多列键不起作用

时间:2014-12-07 10:45:33

标签: mysql datetime sql-update

我的数据库中有这样的表格:

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;

1 个答案:

答案 0 :(得分:0)

从现在开始,它有效。似乎我有一个额外的索引键导致了这个问题。