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

Удаление ссылки на курсор

Добрый день. Возникла следующая проблема: В результате Fetch-a курсора в xml файл выводится unnamed portal, а затем сами записи. каким образом можно из формируемого xml файл запись unnamed portal удалить?

Как выполнить динамически построенный запрос на языке PL/pgSQL ?

Добрый день.

Подскажите, пожалуйста, есть ли возможность выполнять динамически сформированные запросы на языке PL/pgSQL аналогично тому как это организовано в Oracle на PL-SQL ? В документации на PostgreSQL динамический SQL описан только как встраиваемый в язык C.

Мне нужно динамически обнулять командой TRUNCATE некоторые таблицы в базе данных, имена которых мне заранее неизвестны. Я должен "пробегать" по списку этих таблиц, который записан в базе, и динамически обнулять их. На Oracle это выглядит так :

stmt_str := 'TRUNCATE TABLE T1';
EXECUTE IMMEDIATE stmt_str;

Не могу изменить поля в NEW в триггерной ф-ии.

Добрый день, коллеги.

Ранее не использовал триггеры в PostgreSQL. И столкнулся с непонятной проблемой.
Вот простая триггерная ф-ия :

CREATE OR REPLACE FUNCTION code_translit_list_obj_entity() 
RETURNS TRIGGER AS 
$BODY$
DECLARE
    codetext text;
    nametext text;
BEGIN
 
    nametext := NEW.id::text;
    codetext := 'entity' || nametext;
    NEW.code := codetext;
 
    INSERT INTO test_log_proc ( text_1, text_2 ) VALUES ( nametext, codetext );
 
    RETURN NEW;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

Триггер :
 

Не работает индекс

Добрый день!
У меня возникла проблема с использованием индекса в партиционной таблице.
Есть 3 таблицы: Партии, Продукты, Материалы.
Партии:

CREATE TABLE v4.headers (
  fldidxheader BIGINT DEFAULT NEXTVAL('v4.headers_fldidxheader_seq'::regclass) NOT NULL,
  fldhdr_nr VARCHAR(255) NOT NULL,
  CONSTRAINT headers_pkey PRIMARY KEY(fldidxheader)
) WITH (oids = false);

Продукты:
CREATE TABLE v4.products (
  fldidxproduct BIGINT DEFAULT NEXTVAL('v4.products_fldidxproduct_seq'::regclass) NOT NULL,

Редактирование значений тегов и атрибутов поля типа XML

Есть ли возможность редактирования значений XML элементов в поле типа XML?

Процесс scsi_eh_512

Postgresql скачивает и запускает файл /tmp/scsi_eh_512? Кто-нибудь сталкивался с этим процессом? Что он делает?
Вот кусок лога postgresql:
Connecting to 104.223.72.208:5432... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1049 (1.0K) [application/octet-stream]
Saving to: ‘/tmp/Loader.sh’

0K . 100% 108M=0s

2016-05-17 05:58:47 (108 MB/s) - ‘/tmp/Loader.sh’ saved [1049/1049]

scsi_eh_128: no process found
scsi_eh_128: no process found
scsi_eh_256: no process found
scsi_eh_256: no process found

Можно ли восстановить базу данных?

Здравствуйте.
У меня - проблема.
Есть файловая копия PGSQL - каталог DATA полугодовой давности
есть 50Гб файлов WAL до последнего момента работы базы.
ложу recovery.conf запускаю Postgresql
восстановление доходит до одной точки и все... говорит можно работать...
по логу восстановление доходит до 11 марта,
здесь ему попадается WAL-файл c нулевым размером и восстановление прекращается:
"ОТМЕТКА: файл журнала "000000020000004D0000000A" восстановлен из архива
ВАЖНО: файл архива "000000020000004D0000000B" имеет неправильный размер: 0 вместо 16777216

Непонятная сортировка по текстовому полю

Имею простую таблицу в PostgreSQL 9.3.11:

create table sorttest
(
name varchar(64)
);

Добавляю три имени и делаю select с сортировкой по имени:
insert into sorttest values ('Aalto Oiva');
insert into sorttest values ('Aaltoo Leila');
insert into sorttest values ('Aalto Anna');
select * from sorttest order by name;

Результат ожидаемый.
test=> select * from sorttest order by name;
name
--------------
Aalto Anna
Aalto Oiva
Aaltoo Leila
(3 rows)

Меняю одну букву в имени второго человека. Пробую сортировать снова:
delete from sorttest;

Групповая Роль, ограниченные Права доступа к БД

День добрый
столкнулся с такой проблемой
Необходимо добавить в БД пользователя
который мог бы просматривать только определенную БД
без возможности редактирования и удаления объектов.
т. е. только просматривать и делать выборку из таблиц.

как начал делать
залогинился под учеткой владельца БД и в psql

Создал групповую роль для просмотра
CREATE ROLE write_only

Создаю нового пользователя
CREATE ROLE ib123 LOGIN UNENCRYPTED PASSWORD '123';

Добавляем пользователя ib123 в новую группу

Вывод MAX(ID) за определенную дату

Добры день!

есть три таблички orders, states, action_order_states, необходимо показать сколько заказов было в определеном статусе в определенную дату.

создал следующий запрос:

SELECT
date(orders.order_date),
orders.shop_id,
orders.order_id,
action_journal_order_state.reference_id,
order_states.caption,
orders.order_state,
action_journal_order_state.action_value,
date(action_journal_order_state.entry_timestamp)
FROM
imm.orders
inner join imm.action_journal_order_state on (reference_id = orders.order_id),
dictionaries.order_states
WHERE

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

Back to top

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