我试图截断GBQ中的现有表,但是当我运行它时,以下命令失败.是否有任何特定的命令或语法来做到这一点.我查看了GBQ文档,但没有运气.
TRUNCATE TABLE [dw_test.test];
Run Code Online (Sandbox Code Playgroud)
Xio*_*iov 27
虽然BigQuery不习惯支持除SELECTs 以外的任何其他内容,但只要您在查询选项中取消选中"使用旧版SQL"即可.没有截断,但您可以删除:
DELETE from my_table WHERE 1=1
Run Code Online (Sandbox Code Playgroud)
需要注意的是BigQuery规定使用WHERE的DELETE,所以如果你想删除一切你需要使用,将永远是真实的陈述.
lao*_*aol 20
好消息,现在支持 TRUNCATE TABLE:https : //cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement
TRUNCATE TABLE [[project_name.]dataset_name.]table_name
Run Code Online (Sandbox Code Playgroud)
但是,请注意,如果通过您的表定义需要分区过滤器,这将不起作用/不受支持。
Oma*_*OLK 13
CREATE OR REPLACE TABLE <dataset>.<table>
AS SELECT * FROM <dataset>.<table> LIMIT 0;
Run Code Online (Sandbox Code Playgroud)
对于分区表,假设您在字段“created_on”上有一个日分区,然后执行以下命令:
CREATE OR REPLACE TABLE <dataset>.<table> PARTITION BY created_on
AS SELECT * FROM <dataset>.<table> WHERE created_on = CURRENT_DATE() LIMIT 0;
Run Code Online (Sandbox Code Playgroud)
BigQuery不支持TRUNCATE作为查询字符串的一部分.BQ支持的唯一DDL/DML动词是SELECT.
一种选择是运行具有WRITE_TRUNCATE 写处理的作业(链接用于查询作业参数,但在具有目标表的所有作业类型上都支持它).这将截断表中已有的所有数据,并将其替换为作业的结果.
如果您不想将内容替换为其他数据或启动作业,则最佳选择可能是删除并重新创建具有相同模式的表.
| 归档时间: |
|
| 查看次数: |
19618 次 |
| 最近记录: |