在SQL中批量插入多条数据可以通过以下几种方法实现:
- 使用逗号分隔的列表 :
INSERT INTO 表名(列名1, 列名2, 列名3)
VALUES (值1, 值2, 值3), (值4, 值5, 值6), (值7, 值8, 值9);
- 使用子查询 :
INSERT INTO 表名(列名1, 列名2, 列名3)
SELECT 列名A, 列名B, 列名C
FROM 另一个表名
WHERE 条件;
-
使用
UNION ALL
:
INSERT INTO 表名(列名1, 列名2, 列名3)
SELECT 列名A, 列名B, 列名C
FROM (
SELECT 列名A, 列名B, 列名C
FROM 表1
UNION ALL
SELECT 列名A, 列名B, 列名C
FROM 表2
) AS temp;
-
使用
BULK INSERT
(针对某些数据库系统,如SQL Server):
BULK INSERT 表名
FROM '文件路径'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
-
使用
MERGE
语句 (针对某些数据库系统,如SQL Server):
MERGE INTO 目标表 AS t
USING 源表 AS s
ON t.id = s.id
WHEN MATCHED THEN
UPDATE SET t.列名1 = s.列名1, t.列名2 = s.列名2
WHEN NOT MATCHED THEN
INSERT (id, 列名1, 列名2)
VALUES (s.id, s.列名1, s.列名2);
请根据您使用的数据库系统选择合适的方法。需要注意的是,批量插入数据通常比逐条插入数据效率更高,但也要注意不要一次性插入过多数据,以免对数据库造成过大压力。