我有一个SQLite表,我需要排序.我熟悉这个ORDER BY命令,但这不是我想要完成的.我需要在数据库中排序整个表.
说明:
我的表使用一个名为列的列rowed来设置表的顺序(一个键?).我需要通过另一列调用对表进行排序name,然后根据字母顺序重新分配rowid数name.可以这样做吗?
假设您创建了原始表,如下所示:
CREATE TABLE my_table (rowid INTEGER PRIMARY KEY, name TEXT, somedata TEXT) ;
Run Code Online (Sandbox Code Playgroud)
您可以创建另一个排序表,如下所示:
CREATE TABLE my_ordered_table (rowid INTEGER PRIMARY KEY, name TEXT, somedata TEXT) ;
INSERT INTO my_ordered_table (name, somedata) SELECT name,somedata FROM my_table
ORDER BY name ;
Run Code Online (Sandbox Code Playgroud)
如果您想要替换原始表:
DROP TABLE my_table ;
ALTER TABLE my_ordered_table RENAME TO my_table;
Run Code Online (Sandbox Code Playgroud)