powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / RECORD в одну строковую переменную
4 сообщений из 4, страница 1 из 1
RECORD в одну строковую переменную
    #39267781
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток !

Делаю триггер для логгирования.
Мне надо чтобы в одно текстовое поле были вставлены все значения полей изменяемой записи.
Как агрегировать тип данных RECORD в одну строковую переменную ?
Т.е. надо OLD, NEW присвоит в строковую переменную с определенными разделителями.
Код: sql
1.
SELECT string_agg(t1.*, ',') FROM table1 t1;
...
Рейтинг: 0 / 0
RECORD в одну строковую переменную
    #39268051
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставляйте NEW типа record в поле таблицы типа text, постгрес приведёт тип.

логирования изменений данных в таблице тригером , и далее по ссылкам...
...
Рейтинг: 0 / 0
RECORD в одну строковую переменную
    #39268059
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat,

таки hstore -- аккуратнее для таблиц с историей ddl .
...
Рейтинг: 0 / 0
RECORD в одну строковую переменную
    #39269660
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовал поэксперементировать, как вам такое решение?
Код: sql
1.
2.
3.
4.
5.
select 	row_new.id, to_jsonb(row_new_all_column) as row_new_all_column, to_jsonb(row_old_all_column) as row_old_all_column 
from 	table1 as row_new, lateral (select row_new_all_column from table1 row_new_all_column where id = row_new.id limit 1) row_new_all_column,
	table1 as row_old, lateral (select row_old_all_column from table1 row_old_all_column where id = row_old.id limit 1) row_old_all_column
where	row_new.id = NEW.id
	and row_row.id = OLD.id


можно смело посакрощать запрос, главная фишка в том что он достает jsonb (где ключи - имена колонок а значения это значения колонок)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / RECORD в одну строковую переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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