Я хотел бы создать частичный индекс для моей таблицы с именем Messages
для State
и Id
столбцов.Обычно это можно сделать, добавив предложение WHERE
для создания оператора индекса, как описано в официальных документах .Правильный оператор SQLite:
CREATE INDEX `index_Messages_State_Id` ON `Messages` (`State`, `Id`) WHERE State = -2
Поскольку в настоящее время я использую Room в качестве ORM, я не знаю, как объявить частичный индекс с использованием синтаксиса Room.
Здеськраткое описание моей Messages
таблицы:
@Entity(tableName = "Messages")
public class Message implements Parcelable {
@PrimaryKey
@SerializedName("i")
@ColumnInfo(name = "Id")
private long mId;
@SerializedName("t")
@ColumnInfo(name = "Type")
private byte mType;
@SerializedName("s")
@ColumnInfo(name = "State")
private byte mState;
....
}
Заранее спасибо.