db
Описание
Выполняет запрос к базе данных.
Синтаксис
db connection=<field> query=[<string> | <field>] [<timeout>]
Обязательные аргументы
| Параметр | Синтаксис | Описание |
|---|---|---|
connection | connection=<field> | Название соединения. |
query | query=[<string> | <field>] | SQL-запрос. |
Если выполняется запрос на получение данных, то текущие данные заменяются новыми. Если выполняется запрос на обработку данных, в результате остаются текущие данные.
В запрос к базе данных можно внедрить метки временного поля {{_earliest}} или {{_latest}}. Эти метки заменятся на значения earliest или latest из команды source.
Опциональные аргументы
| Параметр | Синтаксис | По умолчанию | Описание |
|---|---|---|---|
timeout | <int> | Берется из db_query или кластерной настройки "sme.sa.timeout.db". | Таймаут выполнения запроса в миллисекундах. При запросе преобразуется в секунды с округлением вверх. |
Таймаут сработает только в том случае, если СУБД и используемый JDBC драйвер поддерживают setQueryTimeout.
Примеры запроса
Получение данных из БД, которая определена в конфигурации с названием mysql:
db connection=mysql query="SELECT * FROM user_info.user;"
Изменение данных в БД, которая определена в конфигурации с названием mysql. В результате останутся данные выполнения команды source:
db connection=mysql query="INSERT INTO user_info.user (name, email) VALUES ('Ivan', 'ivan@mail.ru');"
Выполнение команды с сохраненным запросом. Выполнится запрос, который сохранен под названием mysql_query:
db connection=mysql query=mysql_query
Пример запроса к базе данных с временными метками:
"SELECT * FROM user_info.user WHERE date_field >= {{_earliest}};"