このページは機械翻訳したものです。
--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 です。
パス (標準入力の場合は -
) を指定すると、次のパラメータはターゲットコレクションまたはテーブルの名前になります。 標準入力を使用する場合は、ターゲットを指定する必要があります。
標準入力を使用し、指定したターゲットが指定したスキーマに存在するリレーショナルテーブルである場合、ドキュメントはそのテーブルにインポートされます。 カラム名を指定するパラメータをさらに指定できます。この場合、指定したカラムがインポート先に使用されます。 それ以外の場合は、既存のテーブルに存在する必要があるデフォルトのカラム名
doc
が使用されます。 ターゲットが既存のテーブルでない場合、ユーティリティは指定されたターゲット名のコレクションを検索し、そこにドキュメントをインポートします。 そのようなコレクションが見つからない場合、ユーティリティは指定されたターゲット名でコレクションを作成し、そこにドキュメントをインポートします。 テーブルを作成してテーブルにインポートするには、さらにパラメータとしてカラム名を指定する必要もあります。この場合、ユーティリティは指定されたテーブル名でリレーショナルテーブルを作成し、指定されたカラムにデータをインポートします。ファイルパスとターゲットを指定すると、ユーティリティは指定されたターゲット名のコレクションを検索します。 見つからない場合、ユーティリティはデフォルトでその名前のコレクションを作成し、そこにドキュメントをインポートします。 ファイルをテーブルにインポートするには、さらにパラメータとしてカラム名を指定する必要もあります。この場合、ユーティリティは既存のリレーショナルテーブルを検索してインポートするか、指定されたテーブル名でリレーショナルテーブルを作成し、指定されたカラムにデータをインポートします。
ファイルパスを指定し、ターゲットを指定しない場合、ユーティリティは、指定されたインポートファイルの名前 (ファイル拡張子なし) を持つ、指定されたスキーマ内の既存のコレクションを検索します。 ドキュメントが見つかった場合は、そのドキュメントにインポートされます。 指定されたインポートファイルの名前のコレクションが指定されたスキーマに見つからない場合、ユーティリティはその名前のコレクションを作成し、そのコレクションにドキュメントをインポートします。
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 ドキュメントの数と該当するエラーメッセージを示すメッセージがユーザーに返されます。 インポートが正常に終了した場合はゼロが返され、エラーが発生した場合はゼロ以外の終了コードが返されます。