使用SQLite如何在CREATE TABLE语句中索引列?

前端之家收集整理的这篇文章主要介绍了使用SQLite如何在CREATE TABLE语句中索引列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何索引我的CREATE TABLE语句中的列?表看起来像
command.CommandText =
    "CREATE TABLE if not exists file_hash_list( " +
        "id    INTEGER PRIMARY KEY," +
        "hash  BLOB NOT NULL," +
        "filesize INTEGER NOT NULL);";
command.ExecuteNonQuery();

我想要文件大小为索引,并希望它是4字节

你不能精确地做你想要的,但是不像一些RDBMS,sqlite能够在事务中执行DDL,并获得适当的结果。这意味着,如果你真的担心没有什么没有看到file_hash_list没有索引,你可以做
BEGIN;
CREATE TABLE file_hash_list (
  id INTEGER PRIMARY KEY,hash BLOB NOT NULL,filesize INTEGER NOT NULL
);
CREATE INDEX file_hash_list_filesize_idx ON file_hash_list (filesize);
COMMIT;

或使用任何数据库库的事务原语的等价物。

我不知道如何有必要真的是,虽然,只是做一个事务之外的两个命令。

正如其他人所指出的,sqlite的索引都是B树;你不能选择什么类型或列的哪个部分被索引;整个索引列在索引中。它对范围查询仍然有效,它可能会占用一些更多的磁盘空间比你真正想要的。

原文链接:https://www.f2er.com/sqlite/198273.html

猜你在找的Sqlite相关文章