MySQL Shell 9.0  /  MySQL Shell 实用程序  /  JSON 导入实用程序

11.2 JSON 导入实用程序

MySQL Shell 的 JSON 导入实用程序 util.importJSON() 使您能够将 JSON 文档从文件(或 FIFO 特殊文件)或标准输入导入到 MySQL 服务器集合或关系表。该实用程序会检查提供的 JSON 文档是否格式正确,并将它们插入目标数据库,无需使用多个 INSERT 语句或编写脚本来完成此任务。

您可以将 JSON 文档导入到现有的表或集合中,也可以导入到为导入创建的新表或集合中。如果指定数据库中不存在目标表或集合,则实用程序会自动创建它,并使用默认集合或表结构。默认集合是通过从 schema 对象调用 createCollection() 函数创建的。默认表创建如下:

CREATE TABLE `dbname`.`tablename` (
   target_column JSON,
   id INTEGER AUTO_INCREMENT PRIMARY KEY 
) CHARSET utf8mb4 ENGINE=InnoDB;

默认集合名称或表名称是提供的导入文件的名称(不带文件扩展名),默认 target_column 名称是 doc

JSON 导入实用程序可以处理以 JSON 文档表示的 BSON(二进制 JSON)数据类型。BSON 文档中使用的数据类型并非全部都受到 JSON 的原生支持,但可以使用 JSON 格式的扩展名来表示。导入实用程序可以处理使用 JSON 扩展名来表示 BSON 数据类型的文档,将它们转换为相同的或兼容的 MySQL 表示形式,并使用该表示形式导入数据值。生成的转换数据值可以在表达式和索引中使用,并由 SQL 语句和 X DevAPI 函数操作。

要将 BSON 类型的 JSON 扩展名转换为 MySQL 类型,必须在运行导入实用程序时指定 convertBsonTypes 选项。可以使用其他选项来控制特定 BSON 数据类型的映射和转换。如果导入的文档包含 BSON 类型的 JSON 扩展名,但未使用此选项,则导入的文档将与其在输入文件中的表示形式相同。