![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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), у автоинкремента должно быть нечто вроде свойства "текущее значение", могу ошибаться.