Последний вставленный соответствующий идентификатор записи из переполнения стека MySQL

У меня есть две таблицы MySQL: клиент и адрес. У меня есть данные полного клиента (т. Е. Личная информация с адресом)

Структуры таблицы

Покупатель

CustId    FullName    Gender    AddressId
__________________________________________

Адрес

AddressId    Street    City    State
_____________________________________

Я вставляю значения таблицы в платформу PHP, как я могу связать AddressId и вставить все данные в один кадр. Я не могу доверять последнему вставленному идентификатору, поскольку мы не можем гарантировать, что последний вставленный адресный идентификатор принадлежит соответствующей записи (данные в Интернете — вставка в Интернете).

1

Решение

Последний вставленный идентификатор в MySQL отслеживается на уровне соединения (https://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html).

Для LAST_INSERT_ID () последний сгенерированный идентификатор сохраняется на сервере для каждого соединения. Это не изменено другим клиентом. Он даже не изменится, если вы обновите другой столбец AUTO_INCREMENT немагическим значением (то есть значением, которое не равно NULL и не равно 0). Использование столбцов LAST_INSERT_ID () и AUTO_INCREMENT одновременно от нескольких клиентов вполне допустимо. Каждый клиент получит последний вставленный идентификатор для последнего оператора, выполненного клиентом.

Это означает, что если внутри вашего же соединения вы не сделаете другие вставки с уникальными идентификаторами автоинкремента, используя магию (ноль или 0) после вставки, которая вас беспокоит, вы обязательно получите последний идентификатор, созданный из предыдущей вставки в ваше конкретное соединение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]