Mysql 在重复的多列上,包含datetime的键不起作用
我的数据库中有如下表:Mysql 在重复的多列上,包含datetime的键不起作用,mysql,datetime,sql-update,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 (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;
从现在起,它起作用了。似乎我有一个额外的索引键导致了这个问题。其中someID和date是我的主键。是否要共享完整架构?我不确定如何发布只有phpmyadmin访问权限的完整架构,并使用非英语语言descripe tableName将有所帮助。它似乎在我的本地服务器中按预期工作。您确定使用了确切的日期值强制a=a+1?我的意思是,我两次使用同一个查询,a的值=2