【问题标题】:What is the maximum number of VALUES that can be put in a PostgreSQL INSERT statement?可以在 PostgreSQL INSERT 语句中放入的最大 VALUES 数是多少?
【发布时间】:2016-08-21 02:52:36
【问题描述】:

通过INSERT INTO tbl VALUES (...), (...), ...; 插入行时,我最多可以使用多少个值?

为了澄清,PostgreSQL 支持使用VALUES 一次插入多行。我的问题不是我可以插入多少列,而是我可以在单个VALUES 子句中插入多少行列。有问题的表只有大约 10 列。

我可以使用这种格式一次插入 100K+ 行吗?

如果这很重要,我正在使用 SQLAlchemy Core / psycopg2 组装我的语句。

【问题讨论】:

  • 这可能受限于查询字符串的最大长度。我认为行数没有先验限制。
  • 知道查询字符串的长度吗?我正在通过 TCP 访问数据库。
  • 。 .我没有找到具体的参考。至少 16 MB 似乎可以工作——但我不知道 Python 和中间层是否也支持这个长度。

标签: python postgresql sqlalchemy psycopg2


【解决方案1】:

正如 Gordon 所指出的,您在语句中可以拥有的值集的数量似乎没有预定义的限制。但是您希望将其保持在一个合理的限制范围内,以避免在客户端和服务器上消耗过多的内存。客户端只需要构建字符串,服务器也需要解析它。

如果您想快速插入大量行,COPY FROM 就是您要找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 2012-01-27
    • 2011-03-06
    • 2016-06-09
    • 2023-01-19
    相关资源
    最近更新 更多