• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Return Id In Postgresql

  • Автор темы Автор темы AnaStas
  • Дата начала Дата начала
A

AnaStas

Прошу модераторов форума дать консультацию по следующему вопросу:
Рабочая среда 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 - все напрасно. Видимо, что-то не понимаю или недопонимаю. Подскажите, пожалуйста.
 

там даже пример есть:
[sql]INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
RETURNING did;[/sql]
как в перл завернуть, я надеюсь, объяснять не надо
 
???? (Почетный секретчик), в тексте я указал, что 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', '');
. . .
Вот так и стал я сам себе модератор :)
Тема закрыта.
 
Что-то не видно там про версию
Прошу у форума прощения. Не правильно составлено предложение - зачастую мы забываем, что на форумы мы пишем, а не разговариваем. А это по смысловому восприятию могут быть разные вещи, ибо когда пишем, то используем причастные, деепричастные, временные и т.п. обороты, а в разговорной речи они часто опускаются. Отсюда и смысл подаваемого материала может быть нечетким, а зачастую и разным. Я, друзья, плохо продумал семантическую часть своей темы.
Обещаю исправиться :)
 
Официально, администрацией форума, извинения приняты=) Добро пожаловать к нам)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab