截断GBQ中的表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了截断GBQ中的表相关的知识,希望对你有一定的参考价值。

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

TRUNCATE TABLE [dw_test.test];
答案

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

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

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

另一答案

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

DELETE from my_table WHERE 1=1

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

以上是关于截断GBQ中的表的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 Pandas.read_gbq 加载带有列表列的表后恢复结构?

无法删除或截断 oracle 中的表

使用 DB2 语法截断 H2Database 中的表

匹配特定的字符串格式 - REGEXP_CONTAINS - GBQ 语言

截断数据块上的表

截断日期时间超过 n 天的表