我搜索过Stackoverflow,没有一个能正确回答我的问题。
我的问题是如何将多个INSERT查询转换为单个插入查询。
更具体; https://gist.github.com/gregariousjb/e73fdf1489acbbb63651这一个。这是我需要了解如何制作单个查询的查询。
示例;
INSERT INTO `creature` (`guid`, `id`, ...)
VALUES (1, 2843, ...);
INSERT INTO `creature` (`guid`, `id`, ...)
VALUES (2, 7853, ...);
其中有1000个,需要变成一个。我真诚地感谢我能得到的任何帮助。
答案 0 :(得分:5)
如果您使用的是Sql Server,请尝试以下
Insert into table (columns..)
Values(values1,value2,...),
(values1,value2,...),
(values1,value2,...),
(values1,value2,...)
答案 1 :(得分:3)
在Mysql中,这样做(大多数流行的数据库都有类似的语法):
INSERT INTO mytable (col1, col2, col3, ...) VALUES
(1, 2843, 0, ...),
(2, 7853, 0, ...);
在大多数数据库中,您可以这样做:
INSERT INTO mytable (col1, col2, col3, ...)
SELECT 1, 2843, 0, ...
UNION ALL
SELECT 2, 7853, 0, ...;
在Oracle等后向数据库中,您必须使用人工单行表DUAL对第二个选项进行编码:
INSERT INTO mytable (col1, col2, col3, ...)
SELECT 1, 2843, 0, ...
FRIM DUAL
UNION ALL
SELECT 2, 7853, 0, ...
FROM DUAL;
答案 2 :(得分:2)
最接近的是速记版本,只需要一次字段列表:
INSERT INTO `creature` ( <field list> ) VALUES
( <value list> ),
( <value list> ),
( <value list> )