Перейти к основному содержимому
Перейти к основному содержимому

input Функция Таблицы

input(structure) - функция таблицы, которая позволяет эффективно преобразовывать и вставлять данные, отправленные на сервер с заданной структурой, в таблицу с другой структурой.

structure - структура данных, отправленных на сервер в следующем формате 'имя_столбца1 тип_столбца1, имя_столбца2 тип_столбца2, ...'. Например, 'id UInt32, name String'.

Эта функция может использоваться только в запросе INSERT SELECT и только один раз, но в остальном она ведет себя как обычная функция таблицы (например, ее можно использовать в подзапросе и т.д.).

Данные могут быть отправлены любым способом, как для обычного запроса INSERT, и переданы в любом доступном формате, который должен быть указан в конце запроса (в отличие от обычного INSERT SELECT).

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

Примеры

  • Пусть таблица test имеет следующую структуру (a String, b String) и данные в data.csv имеют другую структуру (col1 String, col2 Date, col3 Int32). Запрос для вставки данных из data.csv в таблицу test с одновременным преобразованием выглядит так:
  • Если data.csv содержит данные такой же структуры, как таблица test, тогда эти два запроса равны: