2016-01-02 3 views
-2

У меня есть таблица mytable, которая постоянно обновляется новыми записями. Я пытаюсь получить самые последние записи, используя метод ниже ([lastId] является крупнейшим идентификатор предыдущего выбора):Как обеспечить, чтобы ВЫБОР новых записей не пропускал никаких записей?

SELECT * 
FROM mytable 
WHERE id > [lastId] 
ORDER BY id DESC 

Но я считаю, идентификаторы (и временные метки, если я использую его), не обязательно вставлен в порядке, поэтому существует (небольшая) возможность пропускать некоторые записи. Как я могу обойти это?

--EDIT--

id поле AUTOINCREMENT.

+0

Создать другой столбец, который сообщает, была ли обработана строка или нет? – lleaff

+0

обеспечивают структуру таблицы? Я хочу знать, есть ли какие-либо обновления по столбцу? –

+0

Почему вы думаете, что порядок вставки имеет какое-либо отношение к сравнению значения столбца? –

ответ

0

Можете ли вы добавить временную метку к таблице и позволить процессу, который вставляет записи, вставляются с текущим временем?

+0

Если есть сценарий, который запускает транзакцию, вставляет запись, ждет 10 секунд, а затем записывается, запись, вставленная другим скриптом в течение этого 10 секунд, будет иметь отметку времени создания, превышающую прежнюю, которая будет «пропущена» с помощью SELECT. – Code

+0

Тогда у вас есть фубарная архитектура. Пожалуйста, подумайте. – Kavli

Смежные вопросы