11.2.3 使用命令导入JSON文档 import

2024年 4月 13日 45.7k 0

--import命令可作为mysqlsh命令界面的替代方案,用于命令行调用 JSON 导入实用程序。此命令提供了不使用选项名称的简短语法,并且它接受来自标准输入的 JSON 文档。语法如下:

mysqlsh user@host:port/mydb --import

[target] [tableColumn] [options]

与mysqlsh命令界面一样,您必须在类似 URI 的连接字符串中或使用附加命令行选项指定目标数据库 --schema。该命令的第一个参数--import是包含要导入的 JSON 文档的文件的文件路径。要从标准输入读取 JSON 文档,请指定破折号 ( -) 而不是文件路径。输入流的结尾是文件结束指示符, 在 Unix 系统上 为Ctrl+D ,在 Windows 系统上为 Ctrl+Z 。

指定路径(或-标准输入)后,下一个参数是目标集合或表的名称。如果使用标准输入,则必须指定目标。

  • 如果您使用标准输入并且指定的目标是指定模式中存在的关系表,则文档将导入到其中。您可以指定另一个给出列名称的参数,在这种情况下,指定的列将用作导入目标。否则,将使用默认列名doc ,该列名必须存在于现有表中。如果目标不是现有表,实用程序将搜索具有指定目标名称的任何集合,并将文档导入其中。如果未找到此类集合,该实用程序将创建具有指定目标名称的集合并将文档导入其中。要创建并导入表,您还必须指定列名作为进一步的参数,在这种情况下,实用程序将创建具有指定表名的关系表并将数据导入到指定列。
  • 如果指定文件路径和目标,实用程序将搜索具有指定目标名称的任何集合。如果没有找到,该实用程序默认创建一个具有该名称的集合并将文档导入其中。要将文件导入到表中,还必须指定列名作为进一步的参数,在这种情况下,实用程序会搜索现有关系表并导入到其中,或者使用指定的表名创建关系表并导入数据到指定的列。
  • 如果指定文件路径但未指定目标,则实用程序会在指定架构中搜索具有所提供导入文件名称(不带文件扩展名)的任何现有集合。如果找到,则将文档导入其中。如果在指定架构中找不到具有所提供导入文件名称的集合,则该实用程序将创建具有该名称的集合并将文档导入到其中。

如果要导入包含 BSON(二进制 JSON)数据类型表示的文档,您还可以指定 第 11.2.4 节 “BSON 数据类型表示的转换”--convertBsonOid中列出的选项、 、 和控制选项。 --extractOidTime=*field_name*``--convertBsonTypes

以下示例从标准输入读取 JSON 文档并将其导入到 数据库territories中指定的目标mydb 。如果未找到名为的集合或表 territories,该实用程序将创建名为 的集合territories并将文档导入其中。如果要创建文档并将其导入到名为 的关系表中territories,则必须指定列名称作为进一步的参数。

mysqlsh user@localhost/mydb --import - territories

以下示例使用文件路径和目标将文件中的 JSON 文档导入 到数据库中指定的关系表中的 /europe/regions.json列 。模式名称是使用 命令行选项而不是在类似 URI 的连接字符串中指定的: jsondata``regions``mydb``--schema

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 返回一条消息,确认导入参数,例如,Importing from file “/europe/regions.json” to table mydb.regions in MySQL Server at 127.0.0.1:33062。

导入完成后,或者如果用户使用Ctrl+C或因错误而中途停止导入,则会向用户返回一条消息,显示成功导入的 JSON 文档的数量以及任何适用的错误消息。如果导入成功完成,则该过程返回零;如果出现错误,则返回非零退出代码。

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论