@immelnikoff
Изучаю БД

Как приложению, пишущему в таблицу БД MySQL 5.7, получать обратно значение автоинкрементного первичного ключа?

В MySQL 5.7 есть таблица:
CREATE TABLE user(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
PRIMARY KEY(id)
);

При записи в поле name, поле id будет заполняться СУБД.
Некоторое приложение имеет права на INSERT в поле name данной таблицы. Но этому приложению недостаточно просто сделать запись в таблицу, ему ещё нужно получить обратно значение поля id для только что сделанной записи. Как это реализовать?
Записи в таблицу могут делаться разными приложениями в параллельном режиме. Поэтому просто возвращать максимальное значение из поля id не получится.
У меня есть колхозная идея, как реализовать это, но я пока что умолчу о ней.
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 2
yellow79
@yellow79
Senior Software Engineer
Поговаривают что last_insert_id() возвращает ID последней вставленной записи в рамках текущего подключения. То есть оно будет всегда вам возвращать то, что вам нужно, даже не смотря на то, что у вас много приложений пишущих в базу
Ответ написан
@402d
начинал с бейсика на УКНЦ в 1988
приложению использовать штатный функционал драйвера бд
В пхп например есть такая функция
mixed mysqli_insert_id ( mysqli $link )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы