我已经在研究这个问题了,但是所有的结果都只是名字的sqlite的.width函数,或者参考杂注和类似的来找出隐藏的值。 问题是这样的:我有一个数据库,我在“.mode列”和“.headers on”下以各种方式查询数据库。所有列的宽度规则似乎是10或列的标题长度,具体取决于哪个更大(即使标题未显示,也是如此) 现在,某些列在 - 因为现在 - 数据库中的两个表具有较长的列宽度,所以它们完全匹配数据的长度(而不是标题)。Sqlite3隐藏的列格式
例如我有一个明显只有4个符号的“日期”列,所以列宽应该默认为10,但是它会扩展到15以适应长日期代码,如“636363515212222”。 所以我想,也许长整数扩大了这一点,但在另一个例子中,我用纯粹的文本字符串作为数据得到了“uuid”,长达34个字符左右。
注意,在基本上在有文本或甚大的整数(我测试)每隔一个示例中,数据的输出将被简单地截断以适应列的宽度,像
SomeLongNames .............. "Herbert Wate
我还尝试将其中一个长uuid条目复制到另一个表中,只是为了查看宽度是否会由于某种原因自动适应这种输入形式。它没有,并且uuid被截断了。 所以这里唯一的结论是表格本身包含一些列的自定义格式,但我完全无法找到这些。 我想:
“的模式(表)”确实给create table语句,但目前还没有任何其他格式的迹象。
“pragma table_info(table_name)”列出了类型,但没有varchar(任何地方!)或其他东西可以看出来解释任何效果。
“select * from sqlite_master”做了两个其他的混合,但只包含其他内容。
“.width”不给出仅为某些表指定列宽的选项,无论该信息甚至存储在哪个问题中,如果我无法通过上述命令找到它的话。
所以我现在的问题:这是怎么回事?不知怎的,桌子肯定是这样结束的。可能它们是在其他sql类型中创建的(我只是分析数据库以学习python编程访问) 然而,即使在这种情况下,sqlite也必须知道,所以这里必须有某种格式化指针。 ...但是哪里?
我非常需要这个顺便说一句。在执行远程SQL查询时使python输出看起来一致。没有办法绕过这些,而不是触及那些便宜的专栏。
喔,非常感谢你!所以第一行也是相关的。这就解释了为什么在列表末尾追加信息没有做任何事情。我可以使用这个,非常感谢。 –