首页/数据/SQL 速查/批量导入:LOAD DATA 与 COPY
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条
变更与事务52 条
性能与执行计划72 条

批量导入:LOAD DATA 与 COPY

从文件批量装载数据:MySQL 用 LOAD DATA INFILE(服务端/客户端本地),PostgreSQL 用 COPY(服务端)或 \copy(客户端)。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
LOAD DATA LOCAL INFILE '/tmp/users.csv'
INTO TABLE users
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id, name, email);

PostgreSQL

PostgreSQL
COPY users (id, name, email)
FROM '/tmp/users.csv'
WITH (FORMAT csv, HEADER true, ENCODING 'UTF8');

-- 客户端侧(psql,文件在本地机器)
\copy users (id, name, email) FROM '/tmp/users.csv' WITH (FORMAT csv, HEADER true);
MySQLLOAD DATA 走服务端路径受 secure_file_priv 限制;LOCAL 版本文件在客户端
PostgreSQLCOPY 需要超级用户或 pg_read_server_files 角色;\copy 用客户端权限
性能两者都比逐行 INSERT 快很多,导入前建议关掉非必要索引再重建

易错点

  • LOAD DATA 默认按列顺序映射,CSV 列顺序与表不一致时要显式写列清单,否则错位入库
  • 导入失败时部分行已提交(取决于引擎与事务包装),重跑前先清理或用幂等键去重

数据来源与参考

  • MySQL 8.0 Reference Manual · LOAD DATA
  • PostgreSQL Documentation · COPY
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌