Блоки · Бази даних
PostgreSQL
PostgreSQL з flow: SELECT, INSERT з RETURNING, JSONB, ON CONFLICT, схеми, функції та транзакції.
Призначення
Блок PostgreSQL працює лише з PostgreSQL-конекторами проєкту. Параметри в SQL — $1, $2, … (масив params у JSON). Підключення: /wiki/bazy-danyh-pidklyuchennya.
Підтримує RETURNING після INSERT/UPDATE, JSON/JSONB-поля, upsert через ON CONFLICT, перегляд схем і таблиць.
Підготовка
Налаштування → Бази даних → PostgreSQL. У конекторі або блоці вкажіть схему (за замовчуванням public).
Переконайтеся, що з сервера Epsenta (Hetzner) відкритий доступ до вашої БД (firewall, SSL за потреби).
- SSL — увімкніть для managed Postgres (Supabase, Neon, RDS)
- readOnly — для аналітичних SELECT без ризику запису
- maxRows / queryTimeoutMs — захист від важких запитів
Усі дії (функції)
- **SELECT (таблиця + WHERE)** — оберіть у полі «Дія»
- **SELECT (SQL + параметри)** — оберіть у полі «Дія»
- **INSERT рядок** — оберіть у полі «Дія»
- **INSERT багато рядків** — оберіть у полі «Дія»
- **UPDATE** — оберіть у полі «Дія»
- **DELETE** — оберіть у полі «Дія»
- **UPSERT (ON CONFLICT)** — оберіть у полі «Дія»
- **Знайти один рядок** — оберіть у полі «Дія»
- **Підрахувати** — оберіть у полі «Дія»
- **Список таблиць** — оберіть у полі «Дія»
- **Структура таблиці** — оберіть у полі «Дія»
- **Схеми** — оберіть у полі «Дія»
- **JSON/JSONB поле** — оберіть у полі «Дія»
- **Stored procedure** — оберіть у полі «Дія»
- **Функція** — оберіть у полі «Дія»
- **Транзакція** — оберіть у полі «Дія»
- **Довільний SQL** — оберіть у полі «Дія»
Відмінності від MySQL
UPSERT — INSERT … ON CONFLICT … DO UPDATE (не ON DUPLICATE KEY).
JSON/JSONB поле — допоміжний SELECT з операторами -> / ->> за JSON-шляхом.
Схеми — list_schemas + list_tables з урахуванням options.schema.
Функція — SELECT fn($1, $2) замість stored procedure MySQL.
INSERT/UPDATE можуть повертати рядок через RETURNING у змінну результату.
Змінні після блоку
- resultVariable — JSON-масив рядків або документів (якщо задано в блоці)
- resultVariable_count — кількість записів
- resultVariable_first — перший рядок/документ (зручно для find_one)
- db_last_error — текст помилки на гілці «Помилка»
Приклад сценарію
Після оплати в боті — блок PostgreSQL insert у таблицю leads (email, source, paid_at) з {email} і {payment_id}; RETURNING id → змінна lead_id → повідомлення «Дякуємо, заявка №{lead_id}».