Sqlite中表列表的默认顺序?

问题描述 投票:0回答:1

sqlite中表列表的默认顺序是什么?

我有一个来自syslog-ng(Linux syslog)的数据库文件。我实际上想根据创建顺序列出这些表。

SELECT name FROM sqlite_master WHERE type='table'

当我通过shell脚本执行此命令时,将按照创建它们的顺序获得表列表。但是,我想确定这是否是保证的行为?还是有可能我会随机获得表列表?对我来说很重要,因为我想保留最新的表格并删除最旧的表格。

sql sqlite sql-order-by information-schema
1个回答
0
投票

我想确定是否可以保证行为?还是有可能我会以随机顺序获得表列表?

SQL表表示无序行集,这意味着没有固有的顺序。如果没有order by子句,则返回行的顺序为undefined,这意味着数据库可以根据需要随意对行进行排序。

因此,不能保证在同一查询的后续执行中,返回行的顺序是一致的。

就所关心的而言,sqlite_master不存储创建每个表的日期-而且我不知道任何其他保存此信息的SQLite系统表。

[在大多数数据库中,一种选择是在create table语句上设置触发器并将信息存储在某些自定义表中,但我认为SQLite也不支持该类型的触发器。

© www.soinside.com 2019 - 2024. All rights reserved.