MySQL Shell 8.4  /  ...  /  使用 --import 命令匯入 JSON 文件

11.2.3 使用 --import 命令匯入 JSON 文件

注意

--import 命令已被棄用,並可能在未來版本中移除。

--import 命令可用於替代 mysqlsh 命令介面,以透過命令列叫用 JSON 匯入工具程式。此命令提供不使用選項名稱的簡短語法,並且會接受來自標準輸入的 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,以及第 11.2.4 節「BSON 資料類型表示法的轉換」中列出的控制選項。

下列範例會從標準輸入讀取 JSON 文件,並將其匯入至 mydb 資料庫中名為 territories 的目標。如果未找到名為 territories 的集合或表格,則工具程式會建立名為 territories 的集合,並將文件匯入其中。如果您想要建立並將文件匯入至名為 territories 的關聯式表格,您必須指定欄名稱作為其他參數。

mysqlsh user@localhost/mydb --import - territories

下列具有檔案路徑和目標的範例會將檔案 /europe/regions.json 中的 JSON 文件匯入至 mydb 資料庫中名為 regions 的關聯式表格中的 jsondata 欄。結構描述名稱是使用 --schema 命令列選項指定,而非使用類似 URI 的連線字串指定

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

下列具有檔案路徑但未指定目標的範例會匯入檔案 /europe/regions.json 中的 JSON 文件。如果在指定的 mydb 資料庫中未找到名為 regions(所提供的匯入檔案名稱,不含副檔名)的集合或表格,則工具程式會建立名為 regions 的集合,並將文件匯入其中。如果已經有名為 regions 的集合,則工具程式會將文件匯入其中。

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

MySQL Shell 會傳回訊息,確認匯入的參數,例如 正在將檔案 "/europe/regions.json" 匯入至 MySQL Server 中 `mydb`.`regions` 表格,網址為 127.0.0.1:33062

匯入完成時,或者如果匯入因使用者使用 Ctrl+C 或因錯誤而中途停止,則會傳回訊息給使用者,顯示成功匯入的 JSON 文件數目,以及任何適用的錯誤訊息。如果匯入順利完成,則處理程序會傳回零,如果發生錯誤,則會傳回非零的結束代碼。