截断GBQ中的表

问题描述 投票:10回答:2

我试图截断GBQ中的现有表,但是当我运行它时,以下命令失败。是否有任何特定的命令或语法来做到这一点。我查看了GBQ文档,但没有运气。

TRUNCATE TABLE [dw_test.test];
google-bigquery
2个回答
6
投票

BigQuery不支持TRUNCATE作为查询字符串的一部分。 BQ支持的唯一DDL / DML动词是SELECT

一个选项是使用WRITE_TRUNCATE write disposition运行作业(链接用于查询作业参数,但在具有目标表的所有作业类型上都支持)。这将截断表中已有的所有数据,并将其替换为作业的结果。

如果您不想将内容替换为其他数据或启动作业,则最佳选择可能是删除并重新创建具有相同模式的表。


14
投票

虽然BigQuery不支持除SELECTs以外的任何其他内容,但只要您在查询选项中取消选中“使用旧版SQL”,它就会生效。没有截断,但you can delete

DELETE from my_table WHERE 1=1

请注意,BigQuery需要在WHERE中使用DELETE,因此如果要删除所有内容,则需要使用始终为true的语句。

© www.soinside.com 2019 - 2024. All rights reserved.