Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

[trigger] функция копирования добавляемой строки в другую таблицу

Добрый день.

Дано:

1) таблица g1 - содержит порядка 95 полей, одно из них - метка времени без зоны, сюда значения пишутся раз в секунду
2) таблица g1_min - (структура идентична g1), содержит строки из g1 , у которых секунды = 00
3) таблица g1_hour - (структура идентична g1), содержит строки из g1 , у которых минуты = 00 и секунды = 00

Надо:
1) при вставке строки в g1, парсить timestamp и если секунды и/или минуты = 00, то копировать строку в соотвествующие g1_min, g1_hour

Что сделано:

Как по Windows авторизоваться в PostgreSQL

Хочу создать батник для резервного копирования баз Postgre.
При вводе команды pg_dump система запрашивает пароль для postgres.
каким образом можно авторизоваться в батнике для последующего ввода команд pg_dump для нескольких баз данных.
Чтобы не делать бэкапы ручками а поставить в расписание?

Заранее благодарен!!!

Tuple offset out of range: 0

Всем привет,

Получаю очень странную ошибку, когда пытаюсь выполнить запросы к партицированной таблице, в которой около 30_000_000 строк. Таблица партициована по колонке 'check_in' на части 'tours_201309p1', 'tours_201309p2', 'tours_201309p3', 'tours_201310p1' и так далее.

При попытке выполнять запросы к этой таблице в некоторых ситуациях я получаю ошибку "Tuple offset out of range: 0", но не всегда. Например следующий запрос работает и возвращает примерно 700_000 строк:

SELECT count(*)
FROM
"tours"
WHERE
(
(

Выдает ошибку SQLSTATE[42702]

При работе с модулем финансы в программе Мегаплан выдает ошибку "SQLSTATE[42702]: Ambiguous column: 7 ОШИБКА: неоднозначная ссылка на колонку "real_account_id" LINE 3: WHERE fo.real_account_id = real_account_id AND fo.state = '... ^ DETAIL: Подразумевается ссылка на переменную PL/pgSQL или колонку таблицы.

Не всегда корректная сортировка при выводе в файл

Добрый день.
Есть таблица которая выгружается в файл csv, данные в нее попадают следующим скриптом

INSERT INTO "public"."Export_orderby" (bludo, kol_vo, price, sum_seb, sebest, sum_price, food_coast)
SELECT bludo, kol_vo, price, sr_price, sebest, paid, foodcoast
FROM "public"."Svod"
ORDER BY kol_vo DESC;

INSERT INTO "public"."Export_orderby" (sum_price,food_coast)
select sum(paid), sum(sebest*kol_vo)/sum(paid)*100 FROM "public"."Svod";

Потом сам экспорт

COPY "public"."Export_orderby" (bludo, kol_vo, sebest, sum_seb, price, sum_price, food_coast)

Как запретить пользователю видеть код функции

Доброго времени суток.

Возникла необходимость сделать не доступным отображение кода функции для всех ролей кроме postgres, с возможностью их вызова.
Пытаюсь сделать так
REVOKE ALL PRIVILEGES (prosrc) ON TABLE pg_catalog.pg_proc FROM PUBLIC;
не получается, команда выполняться, но пользователь все равно видит код функции.

Нашел тему http://postgresql.ru.net/node/29872 и http://www.sql.ru/forum/610157/kak-zapretit-polzovatelu-smotret-telo-fun...
но возникает проблема после выполнения
REVOKE ALL PRIVILEGES ON pg_catalog.pg_proc, information_schema.routines FROM public;

Упал и не поднимается postgre

Здравствуйте. После перебоев с электричеством, Служба postgre перестала запускаться. При попытке запустить службу, пишет:
"Служба PostgreSql Database Server 8.3” на “Локальный компьютер” была запущена и затем остановлена. Некоторые службы автоматически останавливаются, если им нечего делать, например, служба журналов и оповещений производительности"

Все попытки поднять - безуспешны. Последние логи:
[collapse]
2013-09-05 08:30:46 ALMT LOG: система была прервана во время восстановления на 2013-09-05 08:29:52 ALMT

Возврат значений функции

Есть функция которая должна возвращать 2 значения, как я могу описать функцию?Могу ли я в RETURNS записать 2 переменные, или как вернуть record тогда?

query_to_xml в where не работает поле типа char, where data='130809' не понимает прога

Изображение Izver

Добрый день.

Есть базе представление view_otgruz (datd,kpot,suma,...,nd)

В нем находятся данные за 2 года.

Мне надо скопировать в xml файл период (период задается функцией).

Для пробы (не в функции), я создал такой запрос

SELECT query_to_xml ('select datd,kpot,suma,...,nd from view_otgruz where datd between ''130801'' and ''130802''',true,false,'')

Но проблема в том, что вместо '130801' будет переменная.

c_datn=to_char(now()- interval '2 month','yymmdd');
c_datk=to_char(now(),'yymmdd');

Использование View для объединения таблиц

Существует 2 таблицы к примеру продавцы(seller) и покупатели(buyer) у них есть одинаковые поля id, name, last_order_day продавцы содержат еще поля type и limit, покупатели содержат поле sum.

Задача: Нужно вывести всех покупателей и продавцов отсортированных по дате их последней операции для продавцов показать их лимит(limit), а для покупателей сумму(sum).

На примете пока только один вариант это создать View с запросом и уже через View делать сортировку и дополнительные условия на выборку

SELECT seller.id, seller.name, seller.last_order_day, seller.limit, seller.type, null as sum

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023