Spec-Zone.ru › MySQL Shell 8.4

11.2.3 Импорт JSON-документов с помощью команды --import

Примечание

Команда --import устарела и может быть удалена в будущей версии.

Команда --import доступна в качестве альтернативы интерфейсу командной строки mysqlsh для вызова утилиты импорта JSON из командной строки. Эта команда предоставляет краткую синтаксическую запись без имен опций и принимает JSON-документы со стандартного ввода. Синтаксис следующий:

mysqlsh user@host:port/mydb --import <path> [target] [tableColumn] [options]

Как и в интерфейсе командной строки mysqlsh, вы должны указать целевую базу данных, либо в строке подключения в формате URI, либо с помощью дополнительной опции командной строки --schema. Первый параметр для команды --import — это путь к файлу, содержащему JSON-документы, которые необходимо импортировать. Для чтения JSON-документов со стандартного ввода укажите тире (-) вместо пути к файлу. Конец потока ввода — это признак конца файла, который соответствует Ctrl+D в системах Unix и Ctrl+Z в системах Windows.

После указания пути (или - для стандартного ввода) следующим параметром является имя целевой коллекции или таблицы. Если используется стандартный ввод, вы должны указать целевой объект.

  • Если вы используете стандартный ввод, а указанная цель — это реляционная таблица, которая существует в указанной схеме, то документы импортируются в неё. Вы можете указать дополнительный параметр, задающий имя столбца, в этом случае указанный столбец используется в качестве места назначения для импорта. В противном случае используется имя столбца по умолчанию doc, которое должно присутствовать в существующей таблице. Если целевой объект не является существующей таблицей, утилита ищет любую коллекцию с указанным именем целевого объекта и импортирует в неё документы. Если такая коллекция не найдена, утилита создаёт коллекцию с указанным именем целевого объекта и импортирует в неё документы. Для создания и импорта в таблицу вы также должны указать имя столбца как дополнительный параметр, в этом случае утилита создаёт реляционную таблицу с указанным именем таблицы и импортирует данные в указанный столбец.

  • Если вы указываете путь к файлу и целевой объект, утилита ищет любую коллекцию с указанным именем целевого объекта. Если таковая не найдена, утилита по умолчанию создаёт коллекцию с этим именем и импортирует в неё документы. Для импорта файла в таблицу вы также должны указать имя столбца в качестве дополнительного параметра, в этом случае утилита ищет существующую реляционную таблицу и импортирует в неё, или создаёт реляционную таблицу с указанным именем таблицы и импортирует данные в указанный столбец.

  • Если вы указываете путь к файлу, но не указываете целевой объект, утилита ищет любую существующую коллекцию в указанной схеме, имя которой совпадает с именем предоставленного файла импорта (без расширения). Если такая коллекция найдена, документы импортируются в неё. Если в указанной схеме не найдена коллекция с именем предоставленного файла импорта, утилита создаёт коллекцию с этим именем и импортирует в неё документы.

При импорте документов, содержащих представления типов данных BSON (бинарный JSON), вы также можете указать опции --convertBsonOid, --extractOidTime=field_name, --convertBsonTypes, и управляющие опции, перечисленные в разделе 11.2.4, «Преобразования для представлений типов данных BSON».

Следующий пример читает JSON-документы со стандартного ввода и импортирует их в целевой объект под названием territories в базе данных mydb. Если коллекция или таблица с именем territories не найдена, утилита создаёт коллекцию с именем territories и импортирует в неё документы. Если вы хотите создать и импортировать документы в реляционную таблицу с именем territories, вам необходимо указать имя столбца в качестве дополнительного параметра.

mysqlsh user@localhost/mydb --import - territories

Следующий пример с путем к файлу и целевым объектом импортирует JSON-документы из файла /europe/regions.json в столбец jsondata в реляционной таблице с именем regions в базе данных mydb. Имя схемы указывается с помощью опции командной строки --schema вместо строки подключения в формате URI:

mysqlsh user@localhost:33062 --import /europe/regions.json regions jsondata --schema=mydb

Следующий пример с путем к файлу, но без указания целевого объекта, импортирует JSON-документы из файла /europe/regions.json. Если коллекция или таблица с именем regions (имя предоставленного файла импорта без расширения) не найдена в указанной базе данных mydb, утилита создаёт коллекцию с именем regions и импортирует в неё документы. Если коллекция с именем regions уже существует, утилита импортирует документы в неё.

mysqlsh user@localhost/mydb --import /europe/regions.json

MySQL Shell возвращает сообщение, подтверждающее параметры импорта, например, Импорт из файла "/europe/regions.json" в таблицу `mydb`.`regions` в MySQL Server по адресу 127.0.0.1:33062.

После завершения импорта или при его прерывании пользователем с помощью Ctrl+C или по причине ошибки, пользователю возвращается сообщение с количеством успешно импортированных JSON-документов и соответствующим сообщением об ошибке. Процесс возвращает ноль, если импорт завершился успешно, или ненулевое значение, если произошла ошибка.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/mysql-shell-utilities-json-import-command.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API