Mysql 重复密钥导致超时
我目前正在MySQL数据库上运行以下SQL语句: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除外) 如果
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)
。