加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 19:19:28 所属栏目:百科 来源:网络整理
导读:如何索引我的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(); 我想要文件大
如何索引我的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树;你不能选择什么类型或列的哪个部分被索引;整个索引列在索引中。它对范围查询仍然有效,它可能会占用一些更多的磁盘空间比你真正想要的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读