--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 文件數目,以及任何適用的錯誤訊息。如果匯入順利完成,則處理程序會傳回零,如果發生錯誤,則會傳回非零的結束代碼。