powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / plpgsql & count(*) question
5 сообщений из 5, страница 1 из 1
plpgsql & count(*) question
    #34136503
tier.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, господа.
Пытаюсь написать процедуру, которая бы проходила по всем таблицам базы и печатала количества строк в каждой. Но она у меня не работает почему-то. Подскажите, пожалуйста, что у меня не так в ней.

CREATE OR REPLACE FUNCTION test_func()
RETURNS integer AS $$
DECLARE
rec RECORD;
cn INTEGER;
BEGIN
FOR rec IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' LOOP
EXECUTE 'SELECT COUNT(*) INTO cn FROM ' || rec.tablename;
RAISE NOTICE '%', cn;
END LOOP;
RETURN 0;
END;$$
LANGUAGE 'plpgsql';

Ошибка такая вылазит:
ERROR: EXECUTE of SELECT ... INTO is not implemented yet
CONTEXT: PL/pgSQL function "test_func" line 6 at execute statement

Как можно обойти эту проблему?
Спасибо
...
Рейтинг: 0 / 0
plpgsql & count(*) question
    #34136568
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tier.ru
EXECUTE 'SELECT COUNT(*) INTO cn FROM ' || rec.tablename;


Надо так
Код: plaintext
1.
2.
    
    query =  'SELECT COUNT(*)  FROM ' || rec.tablename;
    execute query into cn;
...
Рейтинг: 0 / 0
plpgsql & count(*) question
    #34136626
tier.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во, заработало, спасибо.
только у вас в присваивании ошибка (надо :=), но это мелочи.
...
Рейтинг: 0 / 0
plpgsql & count(*) question
    #34136655
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tier.ruво, заработало, спасибо.
только у вас в присваивании ошибка (надо :=), но это мелочи.

Всегда пожалста.
Кстати "=" - тоже присвоение
...
Рейтинг: 0 / 0
plpgsql & count(*) question
    #34138968
Jelis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tier.ru
только у вас в присваивании ошибка (надо :=), но это мелочи.
С версии 7.непомнюкакая можно в плскл писать просто = вместо := .
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / plpgsql & count(*) question
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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