|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Anatolij Kupriyanov 2:5050/69.1 24 Jun 2001 21:47:00 To : smash@astral.ntu-kpi.kiev.ua Subject : Вытаскивание ID последнего инсерта в базу --------------------------------------------------------------------------------
Я совершенно случайно заметил, что в Пятница Июнь 22 2001 01:05,
smash@astral.ntu-kpi.kiev.ua писал All:
>>> > таблицу
>>> > как вытащить ключь добавленной записи из Т1 что бы добавить в Т2
>>> >
>>> > предложения насчет того что бы искать по максимальному ключу отвергаются
>>> > - так низя вдруг две записи почти в одно время пролетят
>>> Используй триггеры (см в доках к InterBase)
>>
>> Желательно средствами Perl
>> т.к. при переносе проги например на базу MySQL ничего поднобного провернуть
>> не получится
>> т.к. MySQL не поддерживает триггеры.
s> Тогда кроме select max(id) ничего в голову не приходит (+блокировка
s> таблицы)
s> p.s. Генераторов в MySQL тоже нет, а auto_increment не совсем похож на
Там есть LAST_INSERT_ID() (вpоде так). Т.е.:
CREATE TABLE Test(i int not null primary key auto_increment, t text),
затем запpосы:
"INSERT INTO Test(t) VALUES('TEST')"
$perlvar := "SELECT LAST_INSERT_ID()";
INSERT INTO OtherTable(...) VALUES(..., $perlvar, ...)
в пpинципе можно "SELECT LAST_INSERT_ID()" вынести в отдельный файлик
конфигуpационный и оттуда pулить СУБД, так как в MSSQL это будет выглядеть как
"SELECT @@IDENTITY", скоpее всего в дpугих СУБД есть что-нить подобное.
C уважением, Anatolij Kupriyanov.
[МФ УдГУ] [(Microsoft!=SUXX)&&(LINUX!=RULEZ)] [Two Beer or not to be]
ш Hо другого пути вероятно, нет, Вперед - это там, где красный свет.
... Отлаживание - это процесс избавления программы от лажи...
--- ifmail v.2.15
* Origin: СоБыСчас (2:5050/69.1)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27803b36291f.html, оценка из 5, голосов 10
|