【问题标题】:sqlite CLI - can't run large create querysqlite CLI - 无法运行大型创建查询
【发布时间】:2017-08-11 19:28:09
【问题描述】:

sqlite CLI 中的以下命令不起作用(省略号在实际命令中展开):

create table a ('c0, c1, c2, c3, ..., c1000');

我只剩下...> 提示,直到我退出并显示以下错误消息:

Error: unrecognized token: "'c0, c1, ..., c697,"(省略号已展开)。

顺便说一句,创建一个最多包含 698 列的表是可行的。

看起来我实际上并没有达到 SQLite 的限制,那么为什么会发生这种情况呢? https://www.sqlite.org/limits.html

SQLITE_MAX_COLUMN 的默认设置是 2000。

SQL 语句文本中的最大字节数限制为 SQLITE_MAX_SQL_LENGTH,默认为 1000000。

(出于这个问题的目的,请忽略创建包含这么多列的表的智慧。)

【问题讨论】:

  • 您在创建语句中有一个大字符串作为 () 的唯一内容。为什么?
  • 对不起,我也试过不带引号。和'c1', 'c2', ...
  • 但当时的错误肯定不一样了……
  • 同样的错误。似乎 ( ) 只能接受一个比文档建议的长度小得多的字符串。
  • create table a ('verylongstring');是什么意思?

标签: sqlite


【解决方案1】:

Windows 控制台似乎对输入的行有 4096 个字节的限制。

通过任何其他机制(例如,来自文件的.read)执行该字符串都可以正常工作。

【讨论】:

  • 谢谢!此问题也会影响 linux 控制台。 .read command.txt 按预期工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
相关资源
最近更新 更多