INSERT IGNORE和ON DUPLICATE KEY UPDATE - 锁定问题

时间:2014-08-14 16:17:51

标签: java mysql sql jdbc

我们无意中有一个同时具有INSERT IGNORE和ON DUPLICATE KEY UPDATE子句的查询(在事务中)。现在我们考虑它,它没有意义。第一个子句告诉引擎扔掉行,第二个子句告诉引擎更新行。

我们的问题是我们似乎相信这种类型的查询会导致JDBC锁定问题,特别是:"超过锁定等待超时;尝试重新启动事务"。当我们拿出INSERT IGNORE时,这个问题似乎一起消失了(连续4次连续失败后)。

你能相信这会导致锁定问题吗?当两个条款都存在时,引擎决定选择什么?

我们拥有最新的Java 7和J-Connector for MySQL。

INSERT IGNORE INTO comp.table 
    (`id`,`type`) 
VALUES 
    (1,2) 
ON DUPLICATE KEY UPDATE 
    id=1,type=2;

0 个答案:

没有答案