MySQL Shell 8.0

このページは機械翻訳したものです。

8.2.2 --import コマンドを使用した JSON ドキュメントのインポート

--import コマンドは、JSON インポートユーティリティのコマンドライン起動用の mysqlsh コマンドインタフェースのかわりに使用できます。 このコマンドは、オプション名を使用せずに短い形式の構文を提供し、標準入力から JSON ドキュメントを受け入れます。 構文は次のとおりです:

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

mysqlsh コマンドインタフェースと同様に、URI のような接続文字列で、または追加の --schema コマンドラインオプションを使用して、ターゲットデータベースを指定する必要があります。 --import コマンドの最初のパラメータは、インポートする JSON ドキュメントを含むファイルのファイルパスです。 標準入力から JSON ドキュメントを読み取るには、ファイルパスのかわりにダッシュ (-) を指定します。 入力ストリームの終わりは、ファイルの終わりを示すインジケータです。これは、Unix システムでは Ctrl+D、Windows システムでは Ctrl+Z です。

パス (標準入力の場合は -) を指定すると、次のパラメータはターゲットコレクションまたはテーブルの名前になります。 標準入力を使用する場合は、ターゲットを指定する必要があります。

BSON (バイナリ JSON) データ型の表現を含むドキュメントをインポートする場合は、オプション --convertBsonOid--extractOidTime=field_name--convertBsonTypes および セクション8.2.3「BSON データ型の表現の変換」 にリストされている制御オプションも指定できます。

次の例では、標準入力から JSON ドキュメントを読み取り、mydb データベースの territories という名前のターゲットにインポートします。 territories という名前のコレクションまたはテーブルが見つからない場合、ユーティリティは territories という名前のコレクションを作成し、そのコレクションにドキュメントをインポートします。 ドキュメントを作成して territories という名前のリレーショナルテーブルにインポートする場合は、さらにパラメータとしてカラム名を指定する必要があります。

mysqlsh user@localhost/mydb --import - territories

次の例では、ファイルパスとターゲットを使用して、ファイル/europe/regions.json の JSON ドキュメントを mydb データベースの regions というリレーショナルテーブルの jsondata カラムにインポートします。 スキーマ名は、URI のような接続文字列ではなく、--schema コマンドラインオプションを使用して指定します:

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

次の例では、ファイルパスが指定されていますが、ターゲットが指定されていない場合、JSON ドキュメントがファイル/europe/regions.json にインポートされます。 指定された mydb データベースに regions という名前のコレクションまたはテーブル (拡張子のない指定されたインポートファイルの名前) が見つからない場合、ユーティリティは regions という名前のコレクションを作成し、そのコレクションにドキュメントをインポートします。 regions という名前のコレクションがすでに存在する場合、ユーティリティはそのコレクションにドキュメントをインポートします。

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

MySQL Shell は、「127.0.0.1 の MySQL Server で、ファイル/europe/regions.json"からテーブル`mydb`.`regions`にインポートしています:33062」など、インポートのパラメータを確認するメッセージを返します。

インポートが完了するか、Ctrl+C を持つユーザーまたはエラーによってインポートが途中で停止されると、正常にインポートされた JSON ドキュメントの数と該当するエラーメッセージを示すメッセージがユーザーに返されます。 インポートが正常に終了した場合はゼロが返され、エラーが発生した場合はゼロ以外の終了コードが返されます。