このトピックでは、LOAD DATAステートメントを実行してPolarDB-Xデータベースのテーブルにデータをインポートするときの制限と注意事項について説明します。
注意
LOAD DATAステートメントはトランザクションではありません。 LOAD DATAステートメントの実行時にデータベースの故障などの障害が発生した場合、一部のデータの挿入に失敗することがあります。
クライアントでlocal-infileを有効にする必要があります。
構文
ロードデータ
[ローカル]
INFILE 'file_name'
[交換 | IGNORE]
INTO TABLE tbl_name
[文字セットcharset_name]
[{フィールド | コラム}
[「文字列」で終了]
['char' によって囲まれた]
['char 'によるエスケープ]
]
[ライン]
['string' から始める]
[「文字列」で終了]
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_mask [, col_name_or_mask] ...)] パラメータ説明
パラメーター | 説明 |
ロードデータ [ローカル] INFILE | ファイルをサーバーまたはクライアントのどちらに保存するかを指定します。 |
file_name | ファイル名が相対パスの场合, クライアントが起动するパスを基准とします。 |
REPLACE | 新しい行の主キーが既存の行の主キーと同じ値を持つ場合に、インポートする行に既存の行を置き換えます。 |
IGNORE | 新しい行の主キーが既存の行の主キーと同じ値を持つ場合、インポートする行を破棄します。 |
[フィールド] 「文字列」で終了 | フィールドを区切るために使用される区切り文字。 デフォルト値: \t。 |
[フィールド] 'char' で囲まれた | データの各列を囲むために使用される文字。 たとえば、"test" 文字列が列にあり、このパラメーターが "" 'に設定されている場合、データのインポート前に二重引用符 ("") は "test" から削除されます。 |
[ライン] 「文字列」で終了 | データの行を区切るために使用される区切り文字。 デフォルト値:\n |
番号ラインを無視 | ファイル内で無視する最初の行の数。 たとえば、 |
(col_name_or_mask [, col_name_or_mask] ...) |
|
例
テストテーブルを作成します。
CREATE TABLE test ( a int(11) NOT NULL DEFAULT '0', b varchar(8) NOT NULL, PRIMARY KEY (a) ) DBPARTITION by hash(a);次のコードブロックは、インポートするローカルファイルの内容を提供します。
x,y
test1,2
test2,3
test3,4
test4,5
test5,6
test7,8
test8,9 ファイルをインポートするには、次のLOAD DATAステートメントを実行します。
LOAD DATA LOCAL INFILE '~/test.txt' IGNORE INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'test' TERMINATED BY '\n' IGNORE 1 LINES;次の応答が返されます。
select * fromテストオーダーによって;
+ ----- + ------
| a | b |
+ ----- + ------
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 5 | 6 |
| 7 | 8 |
| 8 | 9 |
+ ----- + ------
セットの7行 (0.02秒)