2012-07-13 5 views
9

Может кто-нибудь сказать мне запрос для последнего вставленного значения в столбце базы данных.Как получить последнее вставленное значение в моей базе данных?

Проблема в том, что вставленное значение можно поместить во внутренние строки базы данных после использования ASC или DESC, поэтому я не могу использовать этот метод. Если у кого-нибудь есть решение, скажите мне.

ответ

12

Для отслеживания времени ввода необходимо использовать столбец данных TIMESTAMP. К сожалению, из-за присущих условий гонки, использование в этом случае первичных ключей с автоматическим увеличением не будет работать. Просто добавьте временную метку записи в качестве столбца данных и получите с ORDER BY time_stamp DESC LIMIT 1, чтобы получить последнюю запись. Если вы чувствуете себя действительно оборонительными, стремлюсь включать в себя условие в пункте WHERE, которые являются уникальными для первоначального INSERT вызова (то есть, WHERE ID = x AND KEY = y)

2

I вторых комментариев @Daniel Ли.

В каждых постоянная таблицах, создать, у меня есть следующие столбцы:

  • идентификатор, который является первым столбцом и автоинкрементным/идентичности/последовательного столбец
  • CreatedBy который по умолчанию для пользователя (» по умолчанию SYSTEM_USER "в SQL Server), так что я знаю, кто обновил Колонном
  • CreatedAt, который по умолчанию для DateTime создания (" по умолчанию GetDate() в SQL Server).

(The EXA Синтаксис ct изменяется в зависимости от базы данных.)

За исключением условий гонки, я могу найти последнюю вставленную строку, выполнив «select * from table order by 1 desc».

Хотя они занимают больше места, я обнаружил, что они больше, чем окупаются, будучи в состоянии решить проблемы с течением времени.

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