重新复制并重新订购表格

1 sql sqlite

我正在使用SQLite.我想创建一个与现有表的数据不同的新表.我尝试了以下内容,但它在Mozzilla SQLite管理工具或SQLite Manager中都不起作用.我究竟做错了什么?

INSERT INTO temp  (SnippetID, LibraryID,Name,  BeforeSelection, AfterSelection, ReplaceSelection, NewDocument, NewDocumentLang, Sort)
                           SELECT (SnippetID, LibraryID,Name,  BeforeSelection, AfterSelection, ReplaceSelection, NewDocument, NewDocumentLang, Sort)
                           FROM Snippets  ORDER BY LibraryID;
Run Code Online (Sandbox Code Playgroud)

谢谢 - JZ

pax*_*blo 7

我的问题是一个简单的"为什么?".SQL是一种关系代数,数据集只有在提取时指定它才有顺序.

谈论数据的顺序是没有意义的,因为您的数据库可以自由地强加任何它喜欢的顺序.任何体面的数据库都不会关心插入记录的顺序,只关注键和约束以及可用于有效存储和检索数据的其他属性.

只有当您使用a提取数据时才select ... order by需要修复订单.如果您希望能够有效地提取LibraryID列所排序的数据,只需将其编入索引并order by在提取数据时使用子句.