SQLite3 表中的最大列数是多少?我找到了答案:
最大列数 最大列数为 32767 桌子。 SQLITE_MAX_COLUMN 的默认设置是 2000。
但是当列数为 1000 时,我看到超出最大列数的错误。
那么哪一个是正确的?
我认为你自己已经回答了你的问题。
根据此处的官方文档此处
最大列数
SQLITE_MAX_COLUMN 编译时参数用于设置上限:
表中的列数索引中的列数
视图中的列数 SET 子句中的项数 UPDATE 语句的结果集中的列数 SELECT 语句 GROUP BY 或 ORDER BY 子句中的项数
INSERT 语句中的值的数量
SQLITE_MAX_COLUMN 的默认设置是 2000。您可以在编译时将其更改为大到 32767 的值。
另一方面,许多经验丰富的数据库设计者会认为,一个良好规范化的数据库永远不会需要表中超过 100 列。
其他使用此问题的完整答案可以在这里找到:How to change SQLITE_MAX_COLUMN in Python?
SQLITE_MAX_COLUMN 的默认设置是 2000。您可以在编译时将其更改为大至 32767 的值。另一方面,许多经验丰富的数据库设计人员会认为,良好规范化的数据库永远不需要表中超过 100 列.
https://sqlite.org/limits.html
有关增加列限制的说明,请参阅此链接。
https://dba.stackexchange.com/questions/221508/how-to-increase-column-limit-of-a-table-in-sqlite
您的问题没有通用答案。正如您已经发现的,最大可配置列数是 32767。但是,关键是它是可配置的,因此可以调整。比较 https://www.sqlite.org/limits.html
可以使用 sqlite3_limit(db,SQLITE_LIMIT_COLUMN,size) 接口在运行时降低最大列数。
在您的情况下,限制似乎已设置为 1000,因为您显然遇到了该限制。然而,上面的页面继续说
[...]许多经验丰富的数据库设计者会认为,一个良好规范化的数据库永远不需要表中超过 100 列。
因此,您可能想要增加 SQLITE_MAX_COLUMN 设置,或者重新考虑您的数据库设计。