sql批量insert多条数据

在SQL中批量插入多条数据可以通过以下几种方法实现:

  1. 使用逗号分隔的列表
INSERT INTO 表名(列名1, 列名2, 列名3)
VALUES (值1, 值2, 值3), (值4, 值5, 值6), (值7, 值8, 值9);
  1. 使用子查询
INSERT INTO 表名(列名1, 列名2, 列名3)
SELECT 列名A, 列名B, 列名C
FROM 另一个表名
WHERE 条件;
  1. 使用UNION ALL
INSERT INTO 表名(列名1, 列名2, 列名3)
SELECT 列名A, 列名B, 列名C
FROM (
    SELECT 列名A, 列名B, 列名C
    FROM1
    UNION ALL
    SELECT 列名A, 列名B, 列名C
    FROM2
) AS temp;
  1. 使用BULK INSERT (针对某些数据库系统,如SQL Server):
BULK INSERT 表名
FROM '文件路径'
WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
);
  1. 使用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);

请根据您使用的数据库系统选择合适的方法。需要注意的是,批量插入数据通常比逐条插入数据效率更高,但也要注意不要一次性插入过多数据,以免对数据库造成过大压力。

Top