Windows cmd/终端执行SQLite查询无输出是什么原因?
问题原因
table1本身是空表:没有存储任何数据的表执行全表查询自然不会返回结果,是最常见的原因- SQL语句未加结束标识:SQLite交互式终端要求SQL语句以半角分号
;作为结束标记,未加分号时终端会判定你还在输入语句,不会触发执行也不会返回结果 - 输出模式配置异常:如果之前修改过SQLite的输出配置,比如将输出重定向到了本地文件、设置了不可见的字段分隔符,会导致终端不打印查询结果
- 表名匹配错误:SQLite表名大小写敏感(由建表时的配置决定),如果实际表名和查询的
table1大小写不匹配,可能导致查询无返回,不过该场景通常会附带no such table的报错,无报错时概率较低
解决方法
- 执行查询时务必在语句末尾添加半角分号,正确写法为
select * from table1; - 先执行
select count(*) from table1;查询表内总行数,若返回结果为0即可确认是空表导致的无输出 - 执行
.mode column将输出模式重置为默认的列对齐模式,执行.header on开启表头显示,再重新运行查询语句 - 若之前设置过输出重定向,执行
.output stdout将输出改回终端显示
内容的提问来源于stack exchange,提问作者dzegpi
相关产品推荐
相关产品推荐

