12.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, а также управляющие опции, перечисленные в разделе 12.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.jsonMySQL Shell возвращает сообщение с подтверждением параметров импорта, например, Импорт из файла "/europe/regions.json" в таблицу `mydb`.`regions` в MySQL Server по адресу 127.0.0.1:33062.
По завершении импорта или если импорт был остановлен пользователем с помощью Ctrl+C или из-за ошибки, пользователю возвращается сообщение с количеством успешно импортированных JSON-документов и соответствующим сообщением об ошибке. Процесс возвращает ноль, если импорт завершился успешно, или ненулевое значение, если произошла ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.