是否可以使用SQLite更改表中列的顺序而不更改数据库本身?

推荐答案1

为什么要这样做……

最简单的方法可能是使用您想要的列顺序创建视图……

,但是您应始终在SQL语句中专门将所使用的列命名. *仅在测试/aDhoc或初始开发阶段时才使用.

推荐答案2

从来没有充分的理由重新排序任何关系数据库中表中的列.那是因为您始终可以在选择语句的投影子句中以任何需要的顺序从表中选择列:

选择COL1,COL3,COL3,COL5,COL5,COL4,COL4, col2来自mytable;

选择Col5,Col3,Col2,Col4,Col4,Col1,Mytable;

推荐答案3

我同意奥斯汀·海沃德(Austin Hayward)的意见,但会进一步说没有有效的理由重新排序任何RDBMS中表中的列.出于某些应用程序特定原因,在特定列顺序中返回数据的正确方法是,只需在您选择查询的"投影"子句中以所需顺序列出列!选择Col10,col2,col5,col1,col6
从某种程度上

推荐答案4

我会跳过一个事实,即关系数据库可以轻松地使用柱状存储,并且几个问题是关于行结构存储(大多数RDBMS使用)与列结构存储的问题.

柱状索引和柱状存储通常非常快,但与行结构的存储和行结构索引结构相比,编写相对较慢,例如 B-tree s.如果您的行中存储在柱状结构中的n列,则插入将涉及n个存储结构的单独更新,对于大多数 OLTP OLTP 应用程序. (此外,由于柱状存储的一般模型通常是 Dictionary compression 的一种形式,所以插入本身一排可能非常昂贵,尽管它适用于散装负载.)

高速搜索,扫描和聚合功能的柱状存储功能非常棒但是,分析,这就是为什么柱状商店在这些环境中非常受欢迎的原因.

推荐答案5

drop trigger my_tables_trigger;