Mysql - получить идентификатор автоинкремента при фактической вставке - PullRequest
2 голосов
/ 05 апреля 2011

Кто-нибудь знает, возможно ли получить идентификатор автоматического приращения поля в таблице mysql и использовать его в той же вставке?

* 1003 например *

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

"вставить в таблицу (field1) значения ('random-2')"

Я знаю, что я могу вернуть это в коде и запустить другую вставку, но мне было интересно, есть ли более быстрый способ "вычислить" это во время вставки?

1 думал, что у меня было "вставить в таблицу (field1) значения ('random' + (выбрать max (id) FROM table) + 1)"

но я беспокоюсь о возможных проблемах с несколькими вставками, происходящими одновременно.

Спасибо

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Это невозможно. Вам придется обновить запись позже.

1 голос
/ 05 апреля 2011

Я беспокоюсь о возможных проблемах с несколькими вставками, возникающими одновременно

Это только часть проблемы - идентификаторы вставок предполагаются уникальными, а не непрерывными.

Если вы хотите сделать это за один вызов из приложения, используйте хранимую процедуру для инкапсуляции вставки + обновления или используйте триггер для запуска обновления вставки.Или используйте генератор последовательности вместо автоинкремента.

...