Вопросы по 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. Оптимизация запросов, реализация, подходы и т.д.

alias arguments

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

подскажите пожалуйста как перебирать псевдонимы аргументов функции в PLpgSQL, например:
create or replace function test(text,text,text,text,text,text,text,text,text,text) returns void as $$
declare
g integer;
begin
for g in 1..10 loop
insert into table values ($g);
end loop;
end;
$$
language 'plpgsql'

заранее, спасибо

агрегатные статистические функции

Доброго всем времени суток!
Вопрос в том, есть ли среди статистических агрегатных функций "среднеквадратическое отклонение" или дисперсия?
функции представлены вот здесь:
http://postgresql.ru.net/manual8.4/functions-aggregate.html

to_char и кодировки

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

Мне непонятно зависимость поведения to_char при форматировании даты от кодировки.
При кодировке
ENCODING = 'LATIN1'
запрос
select to_char(current_timestamp, 'HH:MI')
валится с ошибкой:
ERROR: character 0xd092 of encoding "UTF8" has no equivalent in "LATIN1"

При кодировке ENCODING = 'UTF8' отрабатывает нормально.

Просьба объяснить такое поведение или дать ссылку на мануал.
Ну, и сопутствующий вопрос. Как изменить кодировку существующей базы данных?

выбрать максимумы по дням

Здравствуйте,

Помогите новичку!

Необходимо из таблицы
id | ts | r | traff | nbids | ccong | ndv | anblo | mhtime | nbansw | dir
--------+---------------------+---------+-------+-------+-------+------+-------+--------+--------+-----
1 | 2011-09-09 08:00:00 | MARI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2
2 | 2011-09-09 08:00:00 | TRTI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2
3 | 2011-09-09 08:00:00 | VANI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2

pgAgent задание на выполнение bat-файла не отрабатывает

Добрый день!

У меня есть bat-файл, следующего содержания:

%PGBIN%pg_dump -i -h %PGHOST% -U %PGUSER% -Fc ucp > "ucp-%date%.dump"

который выполняет бэкапирование данных. При запуске файла из командной строки dump файл создается успешно. При попытке запустить задание из pgAdmin статус возвращается как "Удачно", но никакого файла не создается. Задание сделал в точности как описано вот тут.

Версия PostgreSQL 9.1.1
Версия pdAdmin 1.14.0
ОС Windpws XP SP3

SELECT

ЗАПРОС ВОЗВРАЩАЕТ ТОЛЬКО ОДИН РЕЗУЛЬТАТ, А ДОЛЖНО БЫТЬ НЕСКОЛЬКО, А НЕКОТОРЫЕ ВООБЩЕ НИЧЕГО НЕ ВОЗВРАЩАЮТ. (NAVICAT).

BACKUP DB

В ПРОЦЕСЕ СОЗДАНИЯ BACKUP ГЕНЕРИРУЕТСЯ ОШИБКА
[Err] [Bak] ERROR: column t.tgisconstraint does not exist
LINE 1: ...ND (((t.tgtype)::integer & em.num) <> 0) AND (NOT t.tgiscons...
СКАЖИТЕ, ПОЖАЛУЙСТА, КАК ЭТО ИСПРАВИТЬ.
СПАСИБО!

ON UPDATE CURRENT_TIMESTAMP

Задача формулируется следующим образом:
Необходимо сохранять для записи время модификации в случае, если данные в записи были действительно изменены, но при этом не сравнивая старые и новые значения для каждой колонки?
Сеть завалена совершенно не вменяемыми примерами, решения проблемы при помощи триггера, такого плана:

CREATE OR REPLACE FUNCTION update_modified_column()
	RETURNS TRIGGER AS $$
	BEGIN
	   NEW.modified = now(); 
	   RETURN NEW;
	END;
	$$ LANGUAGE 'plpgsql';
 
CREATE TRIGGER update_customer_modtime BEFORE UPDATE

Не выполняются триггеры на слейве!

Есть два PostgreSQL 8.4 сервера мастер и слейв между ними выполняется репликация, проблема в том, что триггер на реплицируемой таблице не выполняется, то есть данные в таблице меняются, а триггер не срабатывает.
В случае MySQL данная ситуация достаточно подробно документирована, триггеры на слейве выполняются только при использовании STATEMENT-based (логической) репликации, при
использовании ROW-based репликации они должны выполняются на мастере

Имена таблиц и столбцов как параметры функции

Доброго времени суток, я новичок в PostgreSQL. У меня есть задача, которая сводится к следующей -
написать функцию, которая возвращает таблицу-результат. Таблица-результат есть SELECT из двух таблиц, причем имена этих таблиц и имена колонок - параметры функции. Для простоты пример -
CREATE TABLE table1(
id int,
myText varchar(20)
.....
);
CREATE TABLE table2(
id int,
myText varchar(20)
.....
);
SELECT table1.id,table2.myText FROM table1,table2;
Я не понимаю
1) как воспользоватся именами таблиц и колонок для формирования селекта
2) как правильно вернуть таблицу?

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

Back to top

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