0

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

INSERT INTO `Table` (`Col1`, `Col2`, `Col3`) VALUES ('a','b','c')
ON DUPLICATE KEY UPDATE `Col1`=`Col1`, `Col2`=`Col2`, `Col3`=`Col3`

但是,每次我运行它时,我都会收到以下错误:#1205 - Lock wait timeout exceeded; try restarting transaction. 这很可怕,因为我不知道到底出了什么问题。我的意图是更新现有行的所有值(除了id,它是表的主键)。

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

编辑:更多信息......这id是一个自动递增的字段。还有另一我们UNIQUE称它为IdentityNo_ )。IdentityNoid

4

1 回答 1

0

如果要在上述语句的插入部分引用列的值,则需要使用values(column_name)。你必须使用类似的东西 INSERT INTO Table (Col1, Col2, Col3) VALUES ('a','b','c') ON DUPLICATE KEY UPDATE Col1=values(Col1), Col2=values(Col2), Col3=values(Col3)

于 2012-08-29T20:28:57.207 回答