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

Селект в функции не работает

Функция
CREATE OR REPLACE FUNCTION olo_insert_operator(p_name character varying, p_login character varying, p_password character varying, p_email character varying, p_fullname character varying, p_pic_link character varying)
RETURNS integer AS
$BODY$
DECLARE
tb_row olo_operators%ROWTYPE;
l_id integer := 0;
l_status integer := 2;
BEGIN
SELECT * INTO tb_row FROM olo_operators WHERE op_login = p_login;
IF FOUND THEN
RAISE EXCEPTION 'Такой логин уже есть!';
END IF;
INSERT INTO olo_operators (
op_name,
op_login,
op_password,

Осваиваю бэкап

Я по наивности своей думал, что бэкап просто обязан восстанавливаться без ошибок в новую базу - ведь ему не надо подгонять старые данные и новые - создай все, что в тебя напихали - и всего делов, оказалось не так...

Итак переношу базу в новую через бэкап.
Вариант 1 (sql, $$-кавычки включены)
коллекция ошибок при загрузке:

Не могу разобраться...прошу помощи

//Написал функцию, sqnc_nomenclature - последовательность
CREATE OR REPLACE FUNCTION directories.gen_nomcode()
RETURNS text AS
$BODY$BEGIN
RETURN to_char(nextval('sqnc_nomenclature'), 'FM099999999');
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION directories.gen_nomcode() OWNER TO postgres;

запускаю на выполнение...
select directories.gen_nomcode();

но не срабатывает...ругается:

Не выполняется запрос COPY

Приветствую всех!

С PostgreSQL дело ранее не имел, только с MySQL.
Дали бекап БД, который как ни как не выполняется.

COPY groups (id, name, access) FROM stdin;
1 user 1
2 operator 2
3 expert 4
4 expert_operator 8
5 expert_admin 12
6 admin    31
\.

Такой запрос в файле бекапа - не выполняется. В чем ошибка?
pgAdmin говорит
ERROR: syntax error at or near "1"
LINE 2: 1 user 1
        ^

Отсылка уведомлений клиентским приложениям

Здравствуйте,
Стоит задача отправлять клиентским приложениям уведомления о заданиях выполненных на сервере, например вызов URL, или передача по TCP/IP какого-нибудь пакета. Скажите, пожалуйста, какими средствами это можно сделать и можно ли вообще.
Спасибо.

Backup в PostgreSQL

Люди добрые, помогите разобразобраться:
Делаю backup командой:
pg_dump.exe -i -h hostname -p 5432 -U postgres -F c -b -v -f "file.backup" OldBase
Для проверки пытаюсь восстановить в соседнюю базу:
pg_restore.exe -i -h hostname -p 5432 -U postgres -d NewBase -v "file.backup"

где-то перед самым концом загрузки, судя по времени возникает ошибка:
pg_restore: [custom archiver] error during file seek: Invalid argument

получение последнего ИД в рамках транзакции

Приветствую, коллеги!
жизнь вынудила перейти на слоника ...
имеем
1. INSERT что-то, куда-то , атоматом проставляется автоинкрементное заначение ИД
2 INSERT что-то еще, полученное в прошлом инсерте автоинкрементное ИД куда-то еще.

Сделать поле UNIQUE или PRIMERY KEY

Здравствуйте. Спроектировал таблицу t1 и не указать для ячейки id - primary key или unique. Заполнил базу информацией уже свыше 2 миллионов.
Сейчас всплыла необходимость создания таблицы t2 с стобцом references ссылающимя на ячейку в t1.

Подскажите, что сделать...

Проблемы с запросом

Пользуюсь этой базой впервые, потому извеняюсь за возможную некорректность вопроса.
Запрос такого вида к примеру:

INSERT INTO news_news (keywords, name, cat_id, introtext, fulltext, aproved, url, icon, idx_search, devel)
VALUES ('example', 'example', '8', 'example', 'example', '0', 'example', 'example', to_tsvector('russian', 'example'), 0).

Обработка таблицы множеством процессов

Есть таблица с парой миллионов записей.

Несколько процессов должны обработать все записи этой таблицы.
Один процесс должен обрабатывать 10000 записей за сеанс.
Обработав одну партию записей каждый процесс должен обрабатывать следубщие (не обработанные) 10000 записей.

Как реализовать такую обработку с помощью функций?

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

Back to top

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