sqlite 表中的最大列数,哪一项正确?

sg24os4d  于 2022-11-15  发布在  SQLite
关注(0)|答案(3)|浏览(201)

SQLite3表中的最大列数是多少?我找到了一些答案:
最大列数一个表中的最大列数是32767。SQLITE_MAX_COLUMN的默认设置为2000。
但当列数为1000时,我看到了超过最大列数的错误。那么,哪一个是正确的呢?我将SQLAlChemy 1.3.8与Python一起使用。

yftpprvb

yftpprvb1#

我认为你自己已经回答了你的问题。
根据这里的官方文件here
最大列数
SQLITE_MAX_COLUMN编译时参数用于设置以下各项的上限:

  • 表中的列数索引中的列数
  • 视图中的列数UPDATE语句的SET子句中的项数SELECT语句的结果集中的列数GROUP BY或ORDER BY子句中的项数
  • INSERT语句中的值数

SQLITE_MAX_COLUMN的默认设置为2000。您可以在编译时将其更改为最大为32767的值。
另一方面,许多有经验的数据库设计人员会争辩说,一个标准化良好的数据库在一个表中永远不需要超过100列。
Other Use完整答案您可以在此处找到:How to change SQLITE_MAX_COLUMN in Python?
这里:How to increase column limit of a table in SQLite?

pokxtpni

pokxtpni2#

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

zpgglvta

zpgglvta3#

你的问题没有一般的答案。正如您已经发现的,可配置的最大列数是32767。然而,关键是它是可配置的,所以它可以调整。比较https://www.sqlite.org/limits.html
可以在运行时使用SQLITE_LIMIT(db,SQLITE_LIMIT_COLUMN,SIZE)接口降低最大列数。
在您的情况下,似乎已经将限制设置为1000,因为您显然遇到了这个限制。然而,上面的页面继续说
[.]许多有经验的数据库设计人员会争辩说,一个标准化良好的数据库在一个表中永远不需要超过100列。
因此,您可能希望增加SQLITE_MAX_COLUMN设置,或者重新考虑您的数据库设计。

相关问题