如何解决sqlite表中的最大列数
我想问一个Sqlite3表的最大列数是多少?我找到这样的答案:
Maximum Number Of Columns
The maximum number of columns is 32767 in a table. The default setting for SQLITE_MAX_COLUMN is 2000.
但是,当列数为1000时,我们会看到超出最大列数的错误。 那么哪一个是正确的呢?我们在Python中使用SQLAlchemy == 1.3.8。
谢谢。
解决方法
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设置,或者重新考虑数据库设计。
,我认为您几乎可以回答自己的问题。
根据此处的官方文档here
最大列数
SQLITE_MAX_COLUMN编译时参数用于设置以下内容的上限:
-
表中的列数索引中的列数
-
视图中的列数SET子句中的术语数 UPDATE语句的数量a的结果集中的列数 SELECT语句GROUP BY或ORDER BY子句中的术语数
-
INSERT语句中的值数
SQLITE_MAX_COLUMN的默认设置为2000。您可以在编译时将其更改为最大32767的值。
另一方面,许多经验丰富的数据库设计人员会争辩说,规范化的数据库在一个表中永远不需要超过100列。
其他对此的完整答案,您可以在这里找到:How to change SQLITE_MAX_COLUMN in Python?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。