SQL As Understood By SQLite

REINDEX

sql-statement ::= REINDEX collation name
sql-statement ::= REINDEX [database-name .] table/index-name

REINDEX 命令用于删除或重建索引。当对照序列的定义改变时,将会有用。

第一种形式,所有连接的数据库上所有使用 collation_name 作为对照序列的所有索引 都将会被重新索引。第二种形式, 如果[database-name.]table/index-name 是一个表,那么该表上的所有索引将会被重建。如果是一个索引,那么只有指定的索引会被重建。

如果不指定 database-name,并且指定的名字即是一个表名或索引名,同时又时一个对照序列,那么只会重建相应的对照序列相关的索引。 这种二义性总是可以通过在重建索引时指点一个database-name解决。