Получение значений AUTO_INCREMENT из оператора INSERT - PullRequest
0 голосов
/ 27 декабря 2011

Хорошо, вот проблема:

У меня есть сервер и клиент, который работает с этой общей парадигмой: - Клиент делает запрос «запрос» и получает идентификатор запроса (qid) - Клиент делает «результат» запросов, используя qid столько раз, сколько он хочет.

Когда запрос размещается, он также записывается в базу данных. Вот откуда я хотел бы получить QID: поле AUTO_INCREMENT. Проблема заключается в следующем: когда я его вставляю, мне нужно немедленно получить значение из этого поля обратно. Если я не знаю значение, я не могу запросить его, поскольку QID является единственным первичным ключом.

Я пытался сделать это вручную (отслеживая ключи самостоятельно), но были проблемы с многопоточностью. Есть предложения?

1 Ответ

0 голосов
/ 27 декабря 2011

Можете ли вы сделать что-то подобное сразу после вставки?

SELECT LAST_INSERT_ID();

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

...