powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по plpgsql
7 сообщений из 7, страница 1 из 1
Подскажите по plpgsql
    #34092059
robot888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE OR REPLACE FUNCTION update_sequences()  RETURNS void AS $$
DECLARE
	id bigint;
BEGIN
	SELECT into id max(id)+ 1  FROM cb_categories;
	ALTER SEQUENCE cb_categories_id_seq RESTART WITH id;
END;
$$ LANGUAGE plpgsql;

при добвавлении ругается

авторERROR: syntax error at or near "$1" at character 51
QUERY: ALTER SEQUENCE cb_categories_id_seq RESTART WITH $1
CONTEXT: SQL statement in PL/PgSQL function "update_sequences" near line 5
LINE 1: ALTER SEQUENCE cb_categories_id_seq RESTART WITH $1


что я делаю не так?
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34092116
.gc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.gc
Гость
почему не просто
Код: plaintext
SELECT setval('cb_categories_id_seq', max(id)) FROM cb_categories;
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34092129
robot888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
потому что не умел. спс :)

А всётаки, что не так в функции?
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34092604
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что в явном виде в PL/pgSQL нету такой команды как ALTER SEQUENCE --
ее надо обернуть в PERFORM
http://www.postgresql.org/docs/8.1/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34102441
4_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.gcпочему не просто
Код: plaintext
SELECT setval('cb_categories_id_seq', max(id)) FROM cb_categories;


При операциях бекап ресторе есть возможность сохранить значения последовательностей? Или надо отдельно написать функцию?
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34102724
robot888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я переезжал с мускуля, поэтому пришлось вводить отдельные команды.

Кстати, с PERFORM я пробовал, тоже не работало
...
Рейтинг: 0 / 0
Подскажите по plpgsql
    #34102996
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорей всего вам нужен был не perform (36.6.3. Executing an Expression or Query With No Result) а execute (36.6.5. Executing Dynamic Commands)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Подскажите по plpgsql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]