如何索引我的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没有索引,你可以做
原文链接:https://www.f2er.com/sqlite/198273.htmlBEGIN; 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树;你不能选择什么类型或列的哪个部分被索引;整个索引列在索引中。它对范围查询仍然有效,它可能会占用一些更多的磁盘空间比你真正想要的。