【发布时间】:2013-06-19 16:38:20
【问题描述】:
我正在尝试实施我在 Michiel de Mare 的 here 上找到的解决方案,以使用一个(最好是简单的语法意义)查询来更新多条记录。我尝试学习的示例代码如下所示:
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12) ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
我正在使用 Oracle(但还不熟悉 SQL 查询)。
基于一些动态内容,我将我的查询与上述类似。它的长度可能因我更新的记录数量而异,但这是我生成的查询示例:
INSERT INTO my_table (question_id,ug) VALUES (30,0),(31,1) ON DUPLICATE KEY UPDATE ug=VALUES(ug)
上面的查询得到这个错误:
Native message: ORA-00933: SQL command not properly ended
我正在处理一个内容管理系统,它有一个运行查询的函数调用;在这个框架内。我不认为这是相关的,但我从来不需要放一个';'然而,在查询结束时,我尝试了使用分号和不使用分号。
【问题讨论】:
-
哪个查询生成错误消息?
-
@Andrew,我编辑了这个问题。
-
好的,但是 A1ex07 已经回答了你的问题。
-
谢谢,您的问题实际上是我的“如何动态设置 ON DUPLICATE UPDATE”x) 的答案