My very first PL/pgSQL procedure...

Поиск
Список
Период
Сортировка
От Philippe Ferreira
Тема My very first PL/pgSQL procedure...
Дата
Msg-id 43D7B751.2000407@worldonline.fr
обсуждение исходный текст
Ответы Re: My very first PL/pgSQL procedure...  ("Jim Buttafuoco" <jim@contactbda.com>)
Список pgsql-general
Hi,

I've got a problem with my very first PL/pgSQL procedure !
I created the following procedure, that should reconfigure a sequence :
---------------------------------------------------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION seq_min(sequence_name varchar, minval
integer) RETURNS VOID AS $$
DECLARE
   current_seq integer;
BEGIN
   LOCK TABLE sequence_name IN ACCESS EXCLUSIVE MODE;
   current_seq := last_value FROM sequence_name;
   IF current_seq < minval THEN
     ALTER SEQUENCE sequence_name RESTART WITH minval;
   END IF;
END;
$$ LANGUAGE plpgsql;
---------------------------------------------------------------------------------------------------------------------


I call it from the psql interface by :
      SELECT seq_min('seq_mytable', 1029);

But PostgreSQL returns the following error (translated from french) :

ERROR:  syntax error on or near «$1» at character 13
QUERY : LOCK TABLE  $1  IN ACCESS EXCLUSIVE MODE
CONTEXT : PL/pgSQL function "seq_min" line 4 at SQL statement
LINE 1 : LOCK TABLE  $1  IN ACCESS EXCLUSIVE MODE

So it seems that PostgreSQL have troubles handling my variable
"sequence_name"...
Any idea ?

Thank you in advance,
Philippe Ferreira, France.

В списке pgsql-general по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: Constraint that compares and limits field values
Следующее
От: andrew
Дата:
Сообщение: Re: user defined function