2015-08-01 4 views
-1

Как получить последний вставленный идентификатор таблицы, даже если последние записи (х) были удалены?Последний раз вставил ID из таблицы mysql

х может быть 1, и может быть как 200

+0

Вы предоставили недостаточно информации, поэтому единственный логический вывод состоит в том, что вам необходимо [last_insert_id()] (https://dev.mysql.com/doc/refman/5.6/ en/information-functions.html # function_last-insert-id). –

ответ

1

Предполагая, что вы говорите об идентификаторах авто увеличивается:

SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'Table' 

Это даст вам следующее приращение идентификатора. Чтобы получить последний вставленный идентификатор только минус 1.

+0

Этот ответ вводит в заблуждение. MVCC и 'auto_increment_offset' не рассматриваются в этом ответе, поэтому это приведет людей к неправильным выводам. Я уменьшаю его из-за того, что он совершенно неточный и неправильный. Несмотря на то, что он удовлетворяет «требованию» OP, он будет работать неправильно в реальной среде с более чем одним подключением к базе данных. –

0

После запроса даст вам последний подарок ID в таблице

select id from table_name order by id desc limit 1; 

Обновлено:

Затем вы должны создать таблицу, которая содержит два столбца как table_name, last_id, и вы должны всегда обновлять last_id при вставке данных в конкретную таблицу. Таким образом вы можете получить последний идентификатор, вставленный в таблицу.

+0

Да, это полностью сработает, если вы не удалите записи, но если вы удалите только один снизу, то bam, вы получите предыдущий идентификатор. – Yoplenk

+0

Может быть, это не очень хорошая идея, но тогда вам нужно создать таблицу, в которую вы вставляете идентификатор таблицы этой таблицы и обновляете ее при вставке в таблицу. –

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