Ahmed AE Ответов: 1

Как получить идентификатор вставленной записи в MySQL сервером?


Предположим, у нас есть сервер MySQL, к которому многие клиенты могут получить доступ, и предположим, что вы являетесь клиентом и хотите вставить запись в эту общую базу данных.
Вопрос в том, как сохранить автоматически увеличенный идентификатор таблицы вставленной записи?

Что я уже пробовал:

Я уже пробовал использовать :
LAST_INSERT_ID()
функция, которая возвращает последний инкрементированный идентификатор в базе данных, но эта функция не будет полезна, так как многие клиенты могут выполнять несколько инструкций insert и update. Таким образом, возвращаемый идентификатор, который является самым последним, может быть изменен другим оператором update/insert от другого клиента.
Кроме того, я попытался использовать переменную сеанса для хранения значения, возвращаемого этой функцией
SET @X = LAST_INSERT_ID()
Но есть ли другой профессиональный способ сделать это?

PIEBALDconsult

Лучше знать идентификатор _перед_ вы вставьте его.

1 Ответов

Рейтинг:
8

phil.o

LAST_INSERT_ID() это решение проблемы. Взгляните на это так пост:
Итак: получить новую запись primary key ID из mysql insert query?[^]

Идентификатор, который был сгенерирован, поддерживается в сервере на основе каждого соединения Это означает, что значение, возвращаемое функцией данному клиенту, является первым значением AUTO_INCREMENT, сгенерированным для самого последнего оператора, влияющего на столбец AUTO_INCREMENT этим клиентом.

Вы также можете проверить документацию MySQL напрямую:
Функция LAST_INSERT_ID()[^]