Mysql 多个更新-可能的错误
我正在编写一个函数,用于一次执行多个更新 我受到以下示例代码的启发: 但是我的函数的输出是这样的:Mysql 多个更新-可能的错误,mysql,Mysql,我正在编写一个函数,用于一次执行多个更新 我受到以下示例代码的启发: 但是我的函数的输出是这样的: INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12) ON DUPLICATE KEY UPDATE id=VALUES(id), Col1=VALUES(Col1), Col2=VALUES(Col2); 因此,我担心我的输出包含更新之间的主键字段 我尝试了代码,它似乎工作得很好(包括主键) 这会产生
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE id=VALUES(id), Col1=VALUES(Col1), Col2=VALUES(Col2);
因此,我担心我的输出包含更新之间的主键字段
我尝试了代码,它似乎工作得很好(包括主键)
这会产生我还没有遇到的错误吗?
我必须从查询的第二部分删除主键吗?如果
id
是主键,并且是表上唯一的键,则不必担心id=VALUES(id)
。在这种情况下,id
用于匹配,因此该值不会更改
如果表上有多个唯一键,那么这可能是一个问题。如果您的数据是:
id col1 col2
2 1 1
如果您在(col1,col2)
上有一个唯一的键,那么当您插入(1,1,1)
时,值将更改为:
id col1 col2
1 1 1
因此,我只能在一个字段上用主键更新表时使用此函数。谢谢
id col1 col2
1 1 1