luoyuxia commented on code in PR #23046: URL: https://github.com/apache/flink/pull/23046#discussion_r1287045484
########## docs/content.zh/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,181 @@ +--- +title: "TRUNCATE 语句" +weight: 8 +type: docs +aliases: +- /zh/dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<a name="truncate-statements"></a> + +# TRUNCATE 语句 + +TRUNCATE 语句用于删除表中的全部数据,但不会删除表本身。 + +<span class="label label-danger">注意</span> 目前, `TRUNCATE` 语句仅支持批模式, 并且要求目标表实现了 {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} 接口。 +如果在一个没有实现该接口的表上执行 `TRUNCATE` 语句,则会抛异常。 + +<a name="run-a-truncate-statement"></a> + +## 执行 TRUNCATE 语句 + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +可以使用 `TableEnvironment` 的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下示例展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 +{{< /tab >}} +{{< tab "Scala" >}} + +可以使用 `TableEnvironment` 中的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "Python" >}} + +可以使用 `TableEnvironment` 中的 `execute_sql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`execute_sql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE 语句可以在 [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}) 中执行。 + +以下示例展示了如何在 SQL CLI 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// 注册 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// 插入数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// 清理 "Orders" 表数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// 返回空结果 +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// 注册一个 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// 插入原始数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// 全表删除数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# 注册一个 "Orders" 表 +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# 插入原始数据 +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() Review Comment: ```suggestion table_env.execute_sql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() ``` ########## docs/content.zh/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,181 @@ +--- +title: "TRUNCATE 语句" +weight: 8 +type: docs +aliases: +- /zh/dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<a name="truncate-statements"></a> + +# TRUNCATE 语句 + +TRUNCATE 语句用于删除表中的全部数据,但不会删除表本身。 + +<span class="label label-danger">注意</span> 目前, `TRUNCATE` 语句仅支持批模式, 并且要求目标表实现了 {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} 接口。 +如果在一个没有实现该接口的表上执行 `TRUNCATE` 语句,则会抛异常。 + +<a name="run-a-truncate-statement"></a> + +## 执行 TRUNCATE 语句 + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +可以使用 `TableEnvironment` 的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下示例展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 +{{< /tab >}} +{{< tab "Scala" >}} + +可以使用 `TableEnvironment` 中的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "Python" >}} + +可以使用 `TableEnvironment` 中的 `execute_sql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`execute_sql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE 语句可以在 [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}) 中执行。 + +以下示例展示了如何在 SQL CLI 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// 注册 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// 插入数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// 清理 "Orders" 表数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// 返回空结果 +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// 注册一个 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// 插入原始数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// 全表删除数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# 注册一个 "Orders" 表 +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# 插入原始数据 +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() +table_env.executeSql("SELECT * FROM Orders").print() +# +--------------------------------+--------------------------------+-------------+ +# | user | product | amount | +# +--------------------------------+--------------------------------+-------------+ +# | Lili | Apple | 1 | +# | Jessica | Banana | 2 | +# | Mr.White | Chicken | 3 | +# +--------------------------------+--------------------------------+-------------+ +# 3 rows in set +# 全表删除数据 +table_env.executeSql("TRUNCATE TABLE Orders").wait() +table_env.executeSql("SELECT * FROM Orders").print() Review Comment: ```suggestion table_env.execute_sql("SELECT * FROM Orders").print() ``` ########## docs/content/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,175 @@ +--- +title: "TRUNCATE Statements" +weight: 8 +type: docs +aliases: +- /dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +# TRUNCATE Statements + +TRUNCATE statements are used to delete all rows from a table without dropping the table itself. + +<span class="label label-danger">Attention</span> Currently, `TRUNCATE` statement is supported in batch mode, and it requires the target table connector implements the {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} +interface to support the row-level delete. An exception will be thrown if trying to `TRUNCATE` a table which has not implemented the related interface. + + +## Run a TRUNCATE statement + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +TRUNCATE statement can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` method will throw an exception when there is any error for the operation. + +The following examples show how to run a TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Scala" >}} + +TRUNCATE statements can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Python" >}} + +TRUNCATE statements can be executed with the `execute_sql()` method of the `TableEnvironment`. The `execute_sql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE statement can be executed in [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}). + +The following examples show how to run a TRUNCATE statement in SQL CLI. + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// Empty set +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# register a table named "Orders" +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# insert values +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() Review Comment: ```suggestion table_env.execute_sql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() ``` ########## docs/content.zh/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,181 @@ +--- +title: "TRUNCATE 语句" +weight: 8 +type: docs +aliases: +- /zh/dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<a name="truncate-statements"></a> + +# TRUNCATE 语句 + +TRUNCATE 语句用于删除表中的全部数据,但不会删除表本身。 + +<span class="label label-danger">注意</span> 目前, `TRUNCATE` 语句仅支持批模式, 并且要求目标表实现了 {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} 接口。 +如果在一个没有实现该接口的表上执行 `TRUNCATE` 语句,则会抛异常。 + +<a name="run-a-truncate-statement"></a> + +## 执行 TRUNCATE 语句 + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +可以使用 `TableEnvironment` 的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下示例展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 +{{< /tab >}} +{{< tab "Scala" >}} + +可以使用 `TableEnvironment` 中的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "Python" >}} + +可以使用 `TableEnvironment` 中的 `execute_sql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`execute_sql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE 语句可以在 [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}) 中执行。 + +以下示例展示了如何在 SQL CLI 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// 注册 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// 插入数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// 清理 "Orders" 表数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// 返回空结果 +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// 注册一个 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// 插入原始数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// 全表删除数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# 注册一个 "Orders" 表 +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") Review Comment: ```suggestion table_env.execute_sql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") ``` ########## docs/content/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,175 @@ +--- +title: "TRUNCATE Statements" +weight: 8 +type: docs +aliases: +- /dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +# TRUNCATE Statements + +TRUNCATE statements are used to delete all rows from a table without dropping the table itself. + +<span class="label label-danger">Attention</span> Currently, `TRUNCATE` statement is supported in batch mode, and it requires the target table connector implements the {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} +interface to support the row-level delete. An exception will be thrown if trying to `TRUNCATE` a table which has not implemented the related interface. + + +## Run a TRUNCATE statement + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +TRUNCATE statement can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` method will throw an exception when there is any error for the operation. + +The following examples show how to run a TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Scala" >}} + +TRUNCATE statements can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Python" >}} + +TRUNCATE statements can be executed with the `execute_sql()` method of the `TableEnvironment`. The `execute_sql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE statement can be executed in [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}). + +The following examples show how to run a TRUNCATE statement in SQL CLI. + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// Empty set +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# register a table named "Orders" +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") Review Comment: ```suggestion table_env.execute_sql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") ``` ########## docs/content/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,175 @@ +--- +title: "TRUNCATE Statements" +weight: 8 +type: docs +aliases: +- /dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +# TRUNCATE Statements + +TRUNCATE statements are used to delete all rows from a table without dropping the table itself. + +<span class="label label-danger">Attention</span> Currently, `TRUNCATE` statement is supported in batch mode, and it requires the target table connector implements the {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} +interface to support the row-level delete. An exception will be thrown if trying to `TRUNCATE` a table which has not implemented the related interface. + + +## Run a TRUNCATE statement + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +TRUNCATE statement can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` method will throw an exception when there is any error for the operation. + +The following examples show how to run a TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Scala" >}} + +TRUNCATE statements can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Python" >}} + +TRUNCATE statements can be executed with the `execute_sql()` method of the `TableEnvironment`. The `execute_sql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE statement can be executed in [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}). + +The following examples show how to run a TRUNCATE statement in SQL CLI. + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// Empty set +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# register a table named "Orders" +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# insert values +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() +table_env.executeSql("SELECT * FROM Orders").print() +# +--------------------------------+--------------------------------+-------------+ +# | user | product | amount | +# +--------------------------------+--------------------------------+-------------+ +# | Lili | Apple | 1 | +# | Jessica | Banana | 2 | +# | Mr.White | Chicken | 3 | +# +--------------------------------+--------------------------------+-------------+ +# 3 rows in set +# truncate the table "Orders" +table_env.executeSql("TRUNCATE TABLE Orders").wait() +table_env.executeSql("SELECT * FROM Orders").print() Review Comment: ```suggestion table_env.execute_sql("SELECT * FROM Orders").print() ``` ########## docs/content.zh/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,181 @@ +--- +title: "TRUNCATE 语句" +weight: 8 +type: docs +aliases: +- /zh/dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<a name="truncate-statements"></a> + +# TRUNCATE 语句 + +TRUNCATE 语句用于删除表中的全部数据,但不会删除表本身。 + +<span class="label label-danger">注意</span> 目前, `TRUNCATE` 语句仅支持批模式, 并且要求目标表实现了 {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} 接口。 +如果在一个没有实现该接口的表上执行 `TRUNCATE` 语句,则会抛异常。 + +<a name="run-a-truncate-statement"></a> + +## 执行 TRUNCATE 语句 + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +可以使用 `TableEnvironment` 的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下示例展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 +{{< /tab >}} +{{< tab "Scala" >}} + +可以使用 `TableEnvironment` 中的 `executeSql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`executeSql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "Python" >}} + +可以使用 `TableEnvironment` 中的 `execute_sql()` 方法执行 TRUNCATE 语句。如果 TRUNCATE 操作执行失败,`execute_sql()` 方法会抛出异常。 + +以下的例子展示了如何在 `TableEnvironment` 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE 语句可以在 [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}) 中执行。 + +以下示例展示了如何在 SQL CLI 中执行一条 TRUNCATE 语句。 + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// 注册 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// 插入数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// 清理 "Orders" 表数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// 返回空结果 +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// 注册一个 "Orders" 表 +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// 插入原始数据 +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// 全表删除数据 +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# 注册一个 "Orders" 表 +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# 插入原始数据 +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() +table_env.executeSql("SELECT * FROM Orders").print() +# +--------------------------------+--------------------------------+-------------+ +# | user | product | amount | +# +--------------------------------+--------------------------------+-------------+ +# | Lili | Apple | 1 | +# | Jessica | Banana | 2 | +# | Mr.White | Chicken | 3 | +# +--------------------------------+--------------------------------+-------------+ +# 3 rows in set +# 全表删除数据 +table_env.executeSql("TRUNCATE TABLE Orders").wait() Review Comment: ```suggestion table_env.execute_sql("TRUNCATE TABLE Orders").wait() ``` ########## docs/content/docs/dev/table/sql/truncate.md: ########## @@ -0,0 +1,175 @@ +--- +title: "TRUNCATE Statements" +weight: 8 +type: docs +aliases: +- /dev/table/sql/truncate.html +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +# TRUNCATE Statements + +TRUNCATE statements are used to delete all rows from a table without dropping the table itself. + +<span class="label label-danger">Attention</span> Currently, `TRUNCATE` statement is supported in batch mode, and it requires the target table connector implements the {{< gh_link file="flink-table/flink-table-common/src/main/java/org/apache/flink/table/connector/sink/abilities/SupportsTruncate.java" name="SupportsTruncate" >}} +interface to support the row-level delete. An exception will be thrown if trying to `TRUNCATE` a table which has not implemented the related interface. + + +## Run a TRUNCATE statement + +{{< tabs "truncate" >}} +{{< tab "Java" >}} +TRUNCATE statement can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` method will throw an exception when there is any error for the operation. + +The following examples show how to run a TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Scala" >}} + +TRUNCATE statements can be executed with the `executeSql()` method of the `TableEnvironment`. The `executeSql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. +{{< /tab >}} +{{< tab "Python" >}} + +TRUNCATE statements can be executed with the `execute_sql()` method of the `TableEnvironment`. The `execute_sql()` will throw an exception when there is any error for the operation. + +The following examples show how to run a single TRUNCATE statement in `TableEnvironment`. + +{{< /tab >}} +{{< tab "SQL CLI" >}} + +TRUNCATE statement can be executed in [SQL CLI]({{< ref "docs/dev/table/sqlClient" >}}). + +The following examples show how to run a TRUNCATE statement in SQL CLI. + +{{< /tab >}} +{{< /tabs >}} + +{{< tabs "a5de1760-e363-4b8d-9d6f-0bacb35b9dcf" >}} +{{< tab "Java" >}} +```java +EnvironmentSettings settings = EnvironmentSettings.newInstance().inBatchMode().build(); +TableEnvironment tEnv = TableEnvironment.create(settings); + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)"); + +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set + +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await(); +tEnv.executeSql("SELECT * FROM Orders").print(); +// Empty set +``` +{{< /tab >}} +{{< tab "Scala" >}} +```scala +val env = StreamExecutionEnvironment.getExecutionEnvironment() +val settings = EnvironmentSettings.newInstance().inBatchMode().build() +val tEnv = StreamTableEnvironment.create(env, settings) + +// register a table named "Orders" +tEnv.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +// insert values +tEnv.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// +--------------------------------+--------------------------------+-------------+ +// | user | product | amount | +// +--------------------------------+--------------------------------+-------------+ +// | Lili | Apple | 1 | +// | Jessica | Banana | 2 | +// | Mr.White | Chicken | 3 | +// +--------------------------------+--------------------------------+-------------+ +// 3 rows in set +// truncate the table "Orders" +tEnv.executeSql("TRUNCATE TABLE Orders").await() +tEnv.executeSql("SELECT * FROM Orders").print() +// Empty set +``` +{{< /tab >}} +{{< tab "Python" >}} +```python +env_settings = EnvironmentSettings.in_batch_mode() +table_env = TableEnvironment.create(env_settings) + +# register a table named "Orders" +table_env.executeSql("CREATE TABLE Orders (`user` STRING, product STRING, amount INT) WITH (...)") +# insert values +table_env.executeSql("INSERT INTO Orders VALUES ('Lili', 'Apple', 1), ('Jessica', 'Banana', 2), ('Mr.White', 'Chicken', 3)").wait() +table_env.executeSql("SELECT * FROM Orders").print() +# +--------------------------------+--------------------------------+-------------+ +# | user | product | amount | +# +--------------------------------+--------------------------------+-------------+ +# | Lili | Apple | 1 | +# | Jessica | Banana | 2 | +# | Mr.White | Chicken | 3 | +# +--------------------------------+--------------------------------+-------------+ +# 3 rows in set +# truncate the table "Orders" +table_env.executeSql("TRUNCATE TABLE Orders").wait() Review Comment: ```suggestion table_env.execute_sql("TRUNCATE TABLE Orders").wait() ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
