SQLite: упорядочить по 'insertOrderinDB' - PullRequest
0 голосов
/ 29 сентября 2011

Мне нужно знать, как сделать выбор с порядком вставки в БД, не создавая никакого индексного поля самостоятельно.Может быть, это возможно?

И порядок вставки в транзакции в линейном режиме?(первые предложения -> первая вставка)

СОЗДАНИЕ БД :

private static final String CREATE_TABLE_SONGS = "CREATE TABLE IF NOT EXISTS SONGS (" +
        "LIST_ID int NOT NULL, " +
        "PLAY_ID int NOT NULL, " + //ID of the song in the list
        "SONG_ID int NOT NULL, " + //ID of the song
        "TITLE varchar(200) NOT NULL," +
        "TIME int NOT NULL, " +
        "PROVIDER int NOT NULL, " +
        "PROVIDER_ID varchar(200) NOT NULL, " +
        "SONG_STATE int NOT NULL, " +
        "PRIMARY KEY (LIST_ID,PLAY_ID));";

А затем

db.execSQL(CREATE_TABLE_SONGS);

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

Таблицы SQLite имеют «секретный» столбец с именем ROWID, значение которого увеличивается по мере добавления строк. Он может служить прокси для «заказа, внесенного в таблицу». ROWID - это, по сути, «свободный» столбец первичного ключа с автоинкрементным целым числом для таблицы.

Обратите внимание, что по определению базы данных SQL не имеют представления о порядке строк. Хотя я был бы удивлен, если бы поведение ROWID каждый изменялось в SQLite (поскольку его существование и поведение задокументировано ), как правило, если вы хотите получать строки упорядоченным образом в базах данных SQL, вы ' Вы несете ответственность за хранение информации о заказе самостоятельно.

1 голос
/ 29 сентября 2011
order by _id

следует делать, учитывая аутоинкрементную природу идентификатора.

0 голосов
/ 29 сентября 2011

Передовой метод сортировки строк по временному порядку, в котором они были вставлены, заключается в использовании столбца метки времени, которому в качестве значения по умолчанию назначается дата-время, соответствующее «сейчас», поскольку строка вставляется , Это легко сделать в SQLite.

Значение времени базы данных sqlite по умолчанию 'now'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...