Как получить последний вставленный идентификатор таблицы, даже если последние записи (х) были удалены?Последний раз вставил ID из таблицы mysql
х может быть 1, и может быть как 200
Как получить последний вставленный идентификатор таблицы, даже если последние записи (х) были удалены?Последний раз вставил ID из таблицы mysql
х может быть 1, и может быть как 200
Предполагая, что вы говорите об идентификаторах авто увеличивается:
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'Table'
Это даст вам следующее приращение идентификатора. Чтобы получить последний вставленный идентификатор только минус 1.
Этот ответ вводит в заблуждение. MVCC и 'auto_increment_offset' не рассматриваются в этом ответе, поэтому это приведет людей к неправильным выводам. Я уменьшаю его из-за того, что он совершенно неточный и неправильный. Несмотря на то, что он удовлетворяет «требованию» OP, он будет работать неправильно в реальной среде с более чем одним подключением к базе данных. –
После запроса даст вам последний подарок ID в таблице
select id from table_name order by id desc limit 1;
Обновлено:
Затем вы должны создать таблицу, которая содержит два столбца как table_name
, last_id
, и вы должны всегда обновлять last_id
при вставке данных в конкретную таблицу. Таким образом вы можете получить последний идентификатор, вставленный в таблицу.
Да, это полностью сработает, если вы не удалите записи, но если вы удалите только один снизу, то bam, вы получите предыдущий идентификатор. – Yoplenk
Может быть, это не очень хорошая идея, но тогда вам нужно создать таблицу, в которую вы вставляете идентификатор таблицы этой таблицы и обновляете ее при вставке в таблицу. –
Вы предоставили недостаточно информации, поэтому единственный логический вывод состоит в том, что вам необходимо [last_insert_id()] (https://dev.mysql.com/doc/refman/5.6/ en/information-functions.html # function_last-insert-id). –