From a79af1360d590b673cb6654b7d1b0f4b92549ee4 Mon Sep 17 00:00:00 2001 From: imtbkcat Date: Wed, 25 Mar 2020 17:19:29 +0800 Subject: [PATCH 1/5] add more info about load data --- reference/sql/statements/load-data.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/reference/sql/statements/load-data.md b/reference/sql/statements/load-data.md index 85d4517a3339..107e145768a1 100644 --- a/reference/sql/statements/load-data.md +++ b/reference/sql/statements/load-data.md @@ -14,6 +14,29 @@ category: reference ![LoadDataStmt](/media/sqlgram/LoadDataStmt.png) +## 参数说明 + +用户可以通过 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。 + +例如对于以下格式的数据: + +``` +"bob","20","street 1" +``` + +如果想分别提取 `bob` `20` `street 1`,可以指定数据的分隔符号为 `','`,数据的包围符号为`'\"'`。 + + + +如果不指定处理数据的参数,将会按以下参数处理 + +```sql +FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' +LINES TERMINATED BY '\n' STARTING BY '' +``` + + + ## 示例 {{< copyable "sql" >}} From 86544c4018bfeb818bd49f341f87186a17fcbb26 Mon Sep 17 00:00:00 2001 From: imtbkcat Date: Wed, 25 Mar 2020 17:22:56 +0800 Subject: [PATCH 2/5] add more info about load data --- reference/sql/statements/load-data.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/reference/sql/statements/load-data.md b/reference/sql/statements/load-data.md index 107e145768a1..4b8a8490b3e5 100644 --- a/reference/sql/statements/load-data.md +++ b/reference/sql/statements/load-data.md @@ -17,25 +17,30 @@ category: reference ## 参数说明 用户可以通过 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。 +如果用户希望以某个字符为结尾切分每行数据,可以使用 `LINES TERMINATED BY` 来指定行的终止符。 例如对于以下格式的数据: ``` -"bob","20","street 1" +"bob","20","street 1"\r\n +"alice","33","street 1"\r\n ``` -如果想分别提取 `bob` `20` `street 1`,可以指定数据的分隔符号为 `','`,数据的包围符号为`'\"'`。 - +如果想分别提取 `bob` `20` `street 1`;可以指定数据的分隔符号为 `','`,数据的包围符号为`'\"'`。 +可以写成: +```sql +FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' +``` 如果不指定处理数据的参数,将会按以下参数处理 ```sql -FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' -LINES TERMINATED BY '\n' STARTING BY '' +FIELDS TERMINATED BY '\t' ENCLOSED BY '' +LINES TERMINATED BY '\n' ``` - +用户可以通过 `IGNORE number LINES` 参数来忽略文件开始的 `number` 行,例如可以使用 `IGNORE 1 LINES` 来忽略文件的首行。 ## 示例 @@ -59,6 +64,10 @@ CREATE TABLE trips ( ``` Query OK, 0 rows affected (0.14 sec) ``` +通过 `LOAD DATA` 导入数据,指定数据的分隔符为逗号分隔,忽略包围数据的引号,并且忽略文件的第一行数据。 +如果此时遇到 `ERROR 1148 (42000): the used command is not allowed with this TiDB version` 报错信息。可以参考以下文档解决: + +[ERROR 1148 (42000): the used command is not allowed with this TiDB version 问题的处理方法](../../../faq/tidb.md#923-error-1148-42000-the-used-command-is-not-allowed-with-this-tidb-version-问题的处理方法) {{< copyable "sql" >}} From b05780e4d486fa262f246219d6cc8d855ca503f0 Mon Sep 17 00:00:00 2001 From: imtbkcat Date: Wed, 25 Mar 2020 17:48:06 +0800 Subject: [PATCH 3/5] fix lint --- reference/sql/statements/load-data.md | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/sql/statements/load-data.md b/reference/sql/statements/load-data.md index 4b8a8490b3e5..9a695f5bbd8f 100644 --- a/reference/sql/statements/load-data.md +++ b/reference/sql/statements/load-data.md @@ -64,6 +64,7 @@ CREATE TABLE trips ( ``` Query OK, 0 rows affected (0.14 sec) ``` + 通过 `LOAD DATA` 导入数据,指定数据的分隔符为逗号分隔,忽略包围数据的引号,并且忽略文件的第一行数据。 如果此时遇到 `ERROR 1148 (42000): the used command is not allowed with this TiDB version` 报错信息。可以参考以下文档解决: From 8cca0e96d579dab90e711a420957c001e742183d Mon Sep 17 00:00:00 2001 From: imtbkcat Date: Thu, 26 Mar 2020 15:18:30 +0800 Subject: [PATCH 4/5] address comment --- reference/sql/statements/load-data.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reference/sql/statements/load-data.md b/reference/sql/statements/load-data.md index 9a695f5bbd8f..65d41ccc3232 100644 --- a/reference/sql/statements/load-data.md +++ b/reference/sql/statements/load-data.md @@ -16,7 +16,7 @@ category: reference ## 参数说明 -用户可以通过 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。 +用户可以使用 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。 如果用户希望以某个字符为结尾切分每行数据,可以使用 `LINES TERMINATED BY` 来指定行的终止符。 例如对于以下格式的数据: @@ -26,7 +26,7 @@ category: reference "alice","33","street 1"\r\n ``` -如果想分别提取 `bob` `20` `street 1`;可以指定数据的分隔符号为 `','`,数据的包围符号为`'\"'`。 +如果想分别提取 `bob`、`20`、`street 1`,可以指定数据的分隔符号为 `','`,数据的包围符号为 `'\"'`。 可以写成: ```sql @@ -65,10 +65,11 @@ CREATE TABLE trips ( Query OK, 0 rows affected (0.14 sec) ``` -通过 `LOAD DATA` 导入数据,指定数据的分隔符为逗号分隔,忽略包围数据的引号,并且忽略文件的第一行数据。 +通过 `LOAD DATA` 导入数据,指定数据的分隔符为逗号,忽略包围数据的引号,并且忽略文件的第一行数据。 + 如果此时遇到 `ERROR 1148 (42000): the used command is not allowed with this TiDB version` 报错信息。可以参考以下文档解决: -[ERROR 1148 (42000): the used command is not allowed with this TiDB version 问题的处理方法](../../../faq/tidb.md#923-error-1148-42000-the-used-command-is-not-allowed-with-this-tidb-version-问题的处理方法) +[ERROR 1148 (42000): the used command is not allowed with this TiDB version 问题的处理方法](/faq/tidb.md#923-error-1148-42000-the-used-command-is-not-allowed-with-this-tidb-version-问题的处理方法) {{< copyable "sql" >}} From 9c5a0f216a61df895158953aa77055c60ae63334 Mon Sep 17 00:00:00 2001 From: TomShawn <41534398+TomShawn@users.noreply.github.com> Date: Thu, 26 Mar 2020 21:14:17 +0800 Subject: [PATCH 5/5] unify a line --- reference/sql/statements/load-data.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/reference/sql/statements/load-data.md b/reference/sql/statements/load-data.md index 65d41ccc3232..15ca40adeb0e 100644 --- a/reference/sql/statements/load-data.md +++ b/reference/sql/statements/load-data.md @@ -16,8 +16,7 @@ category: reference ## 参数说明 -用户可以使用 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。 -如果用户希望以某个字符为结尾切分每行数据,可以使用 `LINES TERMINATED BY` 来指定行的终止符。 +用户可以使用 `FIELDS` 参数来指定如何处理数据格式,使用 `FIELDS TERMINATED BY` 来指定每个数据的分隔符号,使用 `FIELDS ENCLOSED BY` 来指定消除数据的包围符号。如果用户希望以某个字符为结尾切分每行数据,可以使用 `LINES TERMINATED BY` 来指定行的终止符。 例如对于以下格式的数据: