如果行数超过设置的限制大小,我想以编程方式向sqlite表添加索引。我想将索引添加到所有具有外键的列中,要获取这些索引,我使用
PRAGMA foreign_key_list(myTable)
我使用from
列从我的表中获取具有外键的列。
由于具有几列的索引的顺序很重要,因此我想按它们在表中出现的顺序对其进行排序。是否有办法在此PRAGMA
查询中找到订单(以及如何查找),还是必须再次进行查询(PRAGMA table_info(myTable)
)并以编程方式找到订单?
编辑:使用.db3文件。
答案 0 :(得分:1)
在进行有限测试的情况下,如果在列级别定义了外键,则 id 列对于较早定义的外键来说是一个较高的值。
您可以使用pragma's在SELECT语句中返回结果,并根据其中一列进行排序(如果使用了合适的列命名约定,则使用id,您可以根据 from 进行排序>列(请注意需要将其括起来)
SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id ASC;
例如,考虑以下内容:-
DROP TABLE IF EXISTS mytable;
CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY,
_otherd_building_id_reference INTEGER REFERENCES _building(_id),
_building_id_reference INTEGER REFERENCES _building(_id),
_room_id_reference INTEGER REFERENCES _room(_id),
_campus_id_reference INTEGER REFERENCES _campus(_id),
_othera_campus_reference INTEGER REFERENCES _campus(_id),
_otherz_room_id_reference INTEGER REFERENCES _room(_id),
_otherc_building_id_reference INTEGER REFERENCES _building(_id)
);
SELECT * FROM pragma_foreign_key_list('mytable') ORDER BY id DESC;
运行上面的结果始终是:-