Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

SQL-операция

Workflow: SQL-узелCommunity Edition+

Введение

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

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

Установка

Встроенный плагин, установка не требуется.

Создание узла

В интерфейсе настройки рабочего процесса нажмите кнопку плюса («+») в потоке, чтобы добавить узел «SQL-операция»:

Добавить SQL-операцию

Настройка узла

Узел SQL_Настройка узла

Источник данных

Выберите источник данных для выполнения SQL-запроса.

Источник данных должен быть типа базы данных, например, основной источник данных, PostgreSQL или другие источники данных, совместимые с Sequelize.

Содержимое SQL

Отредактируйте SQL-запрос. В настоящее время поддерживается только один SQL-запрос.

Info

Начиная с v2.0.30, из соображений безопасности прямая текстовая подстановка переменных в SQL-запросах больше не поддерживается. Вместо этого необходимо использовать параметризованные запросы.

В SQL-запросах можно использовать переменные из контекста процесса, но они должны быть указаны в виде заполнителей в формате :variableName, например:

SELECT * FROM users WHERE id = :userId;

Список параметров

В приведённом выше SQL-запросе :userId является заполнителем. Замена заполнителей должна быть настроена в «Списке параметров». Имя переменной соответствует имени заполнителя, например userId, а значение можно выбрать из контекста процесса с помощью инструмента выбора переменных.

Результат выполнения узла

Начиная с v1.3.15-beta, результатом выполнения узла SQL является массив чистых данных. До этого это была нативная структура возврата Sequelize, содержащая метаданные запроса (см.: sequelize.query()).

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

select count(id) from posts;

Результат до v1.3.15-beta:

[
    [
        { "count": 1 }
    ],
    {
        // meta
    }
]

Результат после v1.3.15-beta:

[
    { "count": 1 }
]

Часто задаваемые вопросы

Как использовать результат узла SQL?

Если используется оператор SELECT, результат запроса будет сохранен в узле в формате JSON Sequelize. Его можно разобрать и использовать с помощью плагина JSON-запросов.

Вызывает ли SQL-операция события коллекции?

Нет. SQL-операция напрямую отправляет SQL-запрос в базу данных для обработки. Связанные операции CREATE / UPDATE / DELETE происходят в базе данных, в то время как события коллекции происходят на уровне приложения Node.js (обрабатываются ORM), поэтому события коллекции не будут вызываться.