Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

INSERT и значение поля auto_increment [MySQL]


ZA ©   (2003-10-17 07:41:00) 

Вопрос несколько не по Delphi, но по SQL.

Имею простенькую таблицу (MySQL) вида
id int(11) NOT NULL auto_increment,
name varchar(32) NOT NULL default "",
PRIMARY KEY (id)
...

Добавляю запись из TQuery (да в общем не важно откуда)
INSERT INTO table (name) VALUES (:name);
Все. А дальше мне нужно использовать в Delphi значение поля id, которое создано автоматически сервером БД. Где это значение взять?
Сейчас организую запрос SELECT на последнюю запись. Но мне кажется такой путь очень кривым, поскольку, пока я буду организовывать запрос, вдруг кто-то из других клиентов добавит свою запиь и я получу неверный результат. Может есть прямой способ?
Спасибо.


ZA   (2003-10-20 13:44:00) [1]

Благодарю за обсуждение и ссылки. Спасибо.


Andriy Tysh   (2003-10-17 10:43:00) [2]

В MS SQL - @@IDENTITY


Johnmen   (2003-10-17 09:43:00) [3]

>DenK_vrtz © (17.10.03 09:37)

На всякий случай уточню - нет хранимыхпроцедур.
А то еще пользователи MySQL подумают о UDF :)


DenK_vrtz   (2003-10-17 09:37:00) [4]

Johnmen ©, понял, спасибо :)


Johnmen   (2003-10-17 09:34:00) [5]

>DenK_vrtz © (17.10.03 09:26)

Тут уж кто как может...:)


asp   (2003-10-17 09:27:00) [6]

Вставил запись и ищи её по NAME.


DenK_vrtz   (2003-10-17 09:26:00) [7]

Johnmen ©, серьезно процедур в MySQL нет?
А как же без них?


Johnmen   (2003-10-17 09:22:00) [8]

>ZA ©

Последнее значение АИ, которое было определено для твоего инсерта, получить корректно и однозначно невозможно. Процедур в MySQL нет. И много чего еще.


DenK_vrtz   (2003-10-17 09:18:00) [9]

http://soft.org.ua/docs/mysql/ru/example-AUTO_INCREMENT.html


ZA   (2003-10-17 09:06:00) [10]

> Написать процедуру, в которой будет вставляться запись, а
> выходным параметром будет новое значение ID.
Именно этого я и хочу. Нельзя ли подробнее описать как это сделать. В SQL я пока слаб, можно это сделать в одном запросе?


DenK_vrtz   (2003-10-17 08:09:00) [11]

Написать процедуру, в которой будет вставляться запись, а выходным параметром будет новое значение ID.
Хотя, как мне кажется (не работал с MySQL), у автоинкремента должно быть нечто вроде свойства "текущее значение", могу ошибаться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо