Блоки · Бази даних

MySQL

Зовнішня MySQL з flow: SELECT, INSERT, UPDATE, UPSERT, процедури, транзакції — через збережений конектор проєкту.

Призначення

Блок MySQL виконує одну операцію з вашою базою даних під час діалогу в мессенджері. Підключення налаштовується окремо в Налаштування → Бази даних (детально: /wiki/bazy-danyh-pidklyuchennya).

У блоці оберіть конектор (alias), дію та параметри. Значення з профілю контакта підставляються в WHERE, колонки та SQL-параметри через {змінні} — без конкатенації SQL з тексту чату.

Після виконання результат потрапляє у змінні контакта; далі можна використати Умову, array_foreach або json_parse.

Підготовка

1. Налаштування → Бази даних → додати MySQL (host, port 3306, база, логін, пароль).

2. Натисніть Тест з'єднання — має бути успіх (SELECT 1).

3. У flow перетягніть блок MySQL, оберіть конектор і дію.

4. Підключіть виходи Успіх і Помилка до наступних кроків.

  • readOnly — заборона INSERT/UPDATE/DELETE на рівні конектора
  • maxRows — ліміт рядків у відповіді (за замовч. 500)
  • queryTimeoutMs — таймаут запиту (за замовч. 15 с)
  • charset — кодування з'єднання (за потреби)

Усі дії (функції)

  • **SELECT (таблиця + WHERE)** — оберіть у полі «Дія»
  • **SELECT (SQL + параметри)** — оберіть у полі «Дія»
  • **INSERT рядок** — оберіть у полі «Дія»
  • **INSERT багато рядків** — оберіть у полі «Дія»
  • **UPDATE** — оберіть у полі «Дія»
  • **DELETE** — оберіть у полі «Дія»
  • **UPSERT (ON DUPLICATE KEY)** — оберіть у полі «Дія»
  • **Знайти один рядок** — оберіть у полі «Дія»
  • **Підрахувати** — оберіть у полі «Дія»
  • **Список таблиць** — оберіть у полі «Дія»
  • **Структура таблиці** — оберіть у полі «Дія»
  • **Схеми** — оберіть у полі «Дія»
  • **JSON поле** — оберіть у полі «Дія»
  • **Stored procedure** — оберіть у полі «Дія»
  • **Функція** — оберіть у полі «Дія»
  • **Транзакція** — оберіть у полі «Дія»
  • **Довільний SQL** — оберіть у полі «Дія»

Коли яку дію обрати

SELECT (таблиця + WHERE) — простий запит: таблиця, колонки, умова з ?-параметрами (JSON-масив params).

SELECT (SQL + параметри) — довільний read-only SQL (лише SELECT / WITH … SELECT); params — JSON-масив значень.

INSERT / UPDATE / DELETE — CRUD з мапою колонка→значення; UPDATE/DELETE вимагають WHERE.

UPSERT — INSERT … ON DUPLICATE KEY UPDATE.

Знайти один рядок — SELECT … LIMIT 1 → зручно для перевірки статусу замовлення.

Підрахувати — COUNT(*) з фільтром.

Список таблиць / Структура таблиці — метадані для динамічних сценаріїв.

Stored procedure / Транзакція / Довільний SQL — advanced; DDL за замовчуванням заблоковано.

Змінні після блоку

  • resultVariable — JSON-масив рядків або документів (якщо задано в блоці)
  • resultVariable_count — кількість записів
  • resultVariable_first — перший рядок/документ (зручно для find_one)
  • db_last_insert_id — ID останнього INSERT (MySQL)
  • db_last_error — текст помилки на гілці «Помилка»

Приклад сценарію

Користувач вводить номер замовлення → блок MySQL find_one (WHERE order_id = ?) → якщо знайдено, повідомлення зі статусом з _first через json_parse; якщо ні — гілка «Помилка» з підказкою звернутися до оператора.