You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YugabyteDB YSQL中带事务大小的COPY FROM正确格式

YSQL中COPY FROM指定事务大小的正确语法

报错原因

语法错误由WITH子句参数书写不规范导致:FORMAT是独立参数,需要单独指定格式类型(可选值为csv/text/binary),delimiter是与FORMAT平级的独立参数,不能跟在FORMAT关键字后书写,因此触发了逗号位置的语法报错。

正确写法

ROWS_PER_TRANSACTION是YugabyteDB针对批量导入场景扩展的参数,用于指定单个事务处理的行数,避免大事务占用过多资源,适配千万级数据导入需求,正确语句格式如下:

COPY parking_violations 
FROM '/home/yugabyte/load_violations.csv'
WITH (
  FORMAT csv,
  HEADER,
  DELIMITER ',',
  ROWS_PER_TRANSACTION 10000
);

参数说明

  • FORMAT csv:指定导入文件的格式为CSV
  • HEADER:声明CSV文件首行为列名,不会作为数据行导入
  • DELIMITER ',':指定字段之间的分隔符为逗号
  • ROWS_PER_TRANSACTION 10000:每导入10000行数据提交一次事务

导入优化建议

  • 针对1200万行的导入规模,ROWS_PER_TRANSACTION建议设置在5000~20000区间:数值过大会导致单事务内存占用过高,数值过小会频繁提交事务拉低导入效率
  • 如果待导入文件存放在本地客户端,而非数据库服务器上,需要使用\copy元命令执行导入,语法与上述COPY语句完全一致,且不需要数据库超级用户权限

内容的提问来源于stack exchange,提问作者dh YB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:18:15