Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по MySql

345
28 марта 2009 года
vadim_k
312 / / 01.08.2006
Привет всем !
Вот такой вопрос есть таблица в ней поле
num которое является первичным индексом
и увеличивается после каждой записи на 1
(auto_increment)
Вот собстваенно вопрос
как после вставки новой записи узнать
значение поля num этой записи
Чувствую что должна быть какая то
функция возвращающая значения поля
auto_increment вставленной записи

Заранее всем спасибо..
294
28 марта 2009 года
Plisteron
982 / / 29.08.2003
Несмотря на то, что работаю с Oracle, предложу решение.

Если предположить, что невозможна ситуация, когда два или больше пользователей одновременно добавляют в таблицу совершенно идентичные строки, то выручит запрос
SELECT MAX(`num`) AS `newnum` FROM `table` WHERE `field1` = :только_что_добавленное_значение_field1 AND `field2`=тч_доб_field2 AND ...
т.е. с перечислением значений только что добавленых значений. Если в таблице кроме первичного ключа есть ещё какое-нибудь ограничение уникальности, то достаточно
SELECT `num` FROM `table` WHERE _здесь_перечисляем_поля_уникального_индекса

В Oracle для подобных случаев есть конструкция:
INSERT INTO таблица (список_столбцов) VALUES (список_значений_или_переменных) RETURNING список_столбцов INTO список_переменных
Возможно, в MySQL тоже есть RETURNING в DML-операциях.

Добавлено: Интересную фенечку нашёл в онлайновой доке MySQl. IMHO, самое оно.
345
29 марта 2009 года
vadim_k
312 / / 01.08.2006
LAST_INSERT_ID()
то что нужно
Спасибо за помощь !
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог