Return Id In Postgresql

AnaStas

Well-known member
16.09.2008
52
0
#1
Прошу модераторов форума дать консультацию по следующему вопросу:
Рабочая среда Perl - PostgreSQL
Есть запрос
Код:
$dbh->do ("INSERT INTO table (id, param1,param2) VALUES ('$argum1','$argum2','$argum3')") 
or die $dbh->errstr;
И никак не могу получить индекс этой последней записи. Просмотрел материал в инете. Там очень много для MySQL, гораздо меньше для PostgreSQL, но то что есть не работает. Ни currval(''table_id_seq''), ни RETURNING id, ни выбрать oid - все напрасно. Видимо, что-то не понимаю или недопонимаю. Подскажите, пожалуйста.
 

AnaStas

Well-known member
16.09.2008
52
0
#3
???? (Почетный секретчик), в тексте я указал, что RETURNING не проходит, т.к. версия PostgreSQL ниже третьей, да и PostgreSQL 8.3.8 Documentation я просматривал.
Но выход, все-таки, неожиданно найден :) и подсказал мне его наш Главный:
- Что ВЫ елозиете по интернету, - заметил он- поработайте сначала с Perl-документацией. Там что-то такое есть! Давайте-ка ПУСК->ВСЕ ПРОГРАММЫ->ActivePerl ...->Documentation. Откроется ActivePerl User Guide. Cпускайтесь в DBI и ищите нечто вроде Last insert ...
И точно! Есть там функция last_insert_id(). И вот ОН- работащий, тут же проверенный код:
Код:
. . . 
my $new_id;
$dbh->do ("INSERT INTO table (id, param1,param2) VALUES ('$argum1','$argum2','$argum3')") 
or die $dbh->errstr;
$new_id=$dbh->last_insert_id('', '', 'table', '');
. . .
Вот так и стал я сам себе модератор :)
Тема закрыта.
 

AnaStas

Well-known member
16.09.2008
52
0
#5
Что-то не видно там про версию
Прошу у форума прощения. Не правильно составлено предложение - зачастую мы забываем, что на форумы мы пишем, а не разговариваем. А это по смысловому восприятию могут быть разные вещи, ибо когда пишем, то используем причастные, деепричастные, временные и т.п. обороты, а в разговорной речи они часто опускаются. Отсюда и смысл подаваемого материала может быть нечетким, а зачастую и разным. Я, друзья, плохо продумал семантическую часть своей темы.
Обещаю исправиться :)
 

vital

Больной Компом Детектед
29.01.2006
2 432
34
#6
Официально, администрацией форума, извинения приняты=) Добро пожаловать к нам)