#алгоритм #php #mysql
Перед тем как добавить в базу, нужно узнать следующий ID который AUTOINCREMENT.
Сделал так:
SELECT MAX(id) as maxid FROM tab0
$my_new_id = $db['maxid'] + 1;
Строки удалять не собираюсь DELETE, удаляю только UPDATE колонку show перевожу из
true в false. Читал, что так делать нельзя ни в коем случае. Но не могу придумать другой
реализации, а перерабатывать структуру не хотелось бы.
Какие подводные камни этой реализации, если не использовать DELETE?
В каких ещё моментах может "сбойнуть"?
Ответы
Ответ 1
LAST_INSERT_ID() // получишь последний ID last_insert_id()Ответ 2
Проблемы вашего решения: Не безопасно, из-за многопоточности Возможно - отосительно долго выполняется ID который будет присвоен при следующем (в любой из сессий) INSERT: SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'table_name' AND table_schema = DATABASE(); Не безопасно, т.к. может очень быстро измениться last_insert_id() - вернёт id установленный в последнем insert'е вашей сессии.
Комментариев нет:
Отправить комментарий