powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не выполняется динамический SQL
3 сообщений из 3, страница 1 из 1
Не выполняется динамический SQL
    #32778190
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни
Код: plaintext
EXEC SQL CREATE TABLE foo (number integer, ascii char( 16 ));
ни
Код: plaintext
EXEC alter sequence test RESTART WITH  100 ;
не работают.
Как вообще работает динамический SQL?

Проблема собственно в том, что надо подправить один сиквенс. Приблизительно так:
Код: plaintext
1.
2.
alter sequence test_seq
RESTART WITH (select id from some_table where id= 10 );
То есть начальное значение сиквенса мне надо узнать из таблицы. Как можно подобное реализовать?
...
Рейтинг: 0 / 0
Не выполняется динамический SQL
    #32778344
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял вопроса
-зачем динамика под эту задачу? Вы хотите получать имена счетчиков, а потом искать имена таблиц? И все эти строки втыкать в динамическую строку? Если нет - хватит обычного SQL
У меня например так (запускается после частичной заливки дампа):
Код: plaintext
1.
2.
3.
....
SELECT setval('report_id_seq', max(id)) FROM report;
SELECT setval('persons_id_seq', max(id)) FROM persons;
....

если брать все счетчики
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT 
pg_class.relname 
FROM 
pg_class 
WHERE NOT 
pg_class.relname ~ 'pg_.*' AND 
pg_class.relkind ='S' 
ORDER BY 
pg_class.relname 
; 
, то как вы ищете из каких таблиц брать максимумы? (счетчики же не обязательно юзать только как суррогатные ключи. Можно ведь и для иных каких нужд приспособить)

(но если только как ключи) - в этом случае было бы уместно как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR REPLACE FUNCTION ... AS '
DECLARE
  stroka  name;
...
BEGIN
EXECUTE \'SELECT setval(\'\' || stroka || \'\' ....
...
END;
'
  LANGUAGE 'plpgsql' VOLATILE;
или даже еще и || qoute_ident(stroka) ||
...
Рейтинг: 0 / 0
Не выполняется динамический SQL
    #32778432
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SETVAL!!!
Я забыл об этой ф-ции!!!!!!!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не выполняется динамический SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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