Mysql 重复密钥导致超时

Mysql 重复密钥导致超时,mysql,sql,insert,on-duplicate-key,Mysql,Sql,Insert,On Duplicate Key,我目前正在MySQL数据库上运行以下SQL语句: INSERT INTO `Table` (`Col1`, `Col2`, `Col3`) VALUES ('a','b','c') ON DUPLICATE KEY UPDATE `Col1`=`Col1`, `Col2`=`Col2`, `Col3`=`Col3` 但是,每次运行它时,都会出现以下错误:#1205-超过锁等待超时;尝试重新启动事务。这太可怕了,因为我不知道到底出了什么问题。我的目的是更新现有行的所有值(表的主键id除外) 如果

我目前正在MySQL数据库上运行以下SQL语句:

INSERT INTO `Table` (`Col1`, `Col2`, `Col3`) VALUES ('a','b','c')
ON DUPLICATE KEY UPDATE `Col1`=`Col1`, `Col2`=`Col2`, `Col3`=`Col3`
但是,每次运行它时,都会出现以下错误:
#1205-超过锁等待超时;尝试重新启动事务
。这太可怕了,因为我不知道到底出了什么问题。我的目的是更新现有行的所有值(表的主键
id
除外)

如果你有任何想法,请告诉我


编辑:更多信息。。。
id
是一个自动递增的字段。还有另一个
UNIQUE
列(我们称之为
IdentityNo
,因此我希望该语句做的是:1.如果
IdentityNo
中没有冲突,则插入,2.如果存在冲突,则更新现有行(不更改
id
).

如果要引用上述语句插入部分中的列值,则需要使用值(列名称)。 你必须用类似的东西
表中插入(
Col1
Col2
Col3
)值('a','b','c')) 在重复密钥更新时,
Col1
=值(Col1),
Col2
=值(Col2),
Col3
=值(Col3)

当您在插入中不使用
id
时,您希望重复键上的
做什么?是否有任何其他值被索引为
唯一的
?抱歉,我错过了我的意图,已经更新了信息…!您正在用相同的值更新表?这似乎毫无意义。可能您指的是
值(Col1)