Можно ли заказать по последней строке вставить desc? - PullRequest
1 голос
/ 24 февраля 2011

Позвольте мне объяснить это немного подробнее.

У меня есть таблица в sqlite, которая выглядит примерно так:

table
------
id numeric primary key,
uuid text not null,
other_field text

Теперь id - это стандартный тип автоинкремента.В эту таблицу могут быть добавлены и удалены записи в любое время, поэтому, если rowid, который использовался один раз ранее, использовался снова, это было бы хорошо.Я не использую эту функцию «заполнить таблицу» в sqlite.Разрешено иметь несколько записей с одинаковым uuid.Идея в том, что меня интересует только последняя вставленная запись.

Это поднимает вопрос.Я знаю, что могу сделать вызов типа «выбрать другое поле из таблицы, где uuid =? Order by rowid desc»

Это было бы нормально, но что, если rowid оборачивается?order by rowid desc не даст мне самую новую запись.

Все, что я могу придумать, это добавить поле creation_time, например

table
------
id numeric primary key,
uuid text not null,
other_field text
creation_time datetime

, а затем, когда оно будет создано, поставить datetime ('now') в этом поле.

select other_field from table where uuid=? order by creation_time desc

Но это означает добавление дополнительного поля и большего индекса.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 14 ноября 2018

Если вы хотите выбрать самый новый идентификатор или RowID, загляните в команду LIMIT.С помощью LIMIT вы можете вернуть только 1 строку.Для вашего примера:

SELECT * from table ORDER BY id DESC LIMIT 1

С этим решением вам не нужно добавлять другое поле "creation_time".

Хмель, это помогает:)

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