Google BigQuery:如何使用SQL创建新列



我想在不使用遗留 SQL 的情况下向现有表添加一列。

基本的 SQL 语法是:

ALTER TABLE table_name
ADD column_name datatype;

我格式化了Google BigQuery的查询:

ALTER TABLE `projectID.datasetID.fooTable`
ADD (barColumn date);

但是语法不正确,并出现此错误:

Error: Syntax error: Expected "." or keyword SET but got identifier "ADD" at [1:63]

那么如何为 Google BigQuery 正确格式化 SQL?

ALTER TABLE ADD COLUMN 的支持于 2020 年 10 月 14 日根据 BigQuery 发行说明发布。

因此,最初提出的声明现在应该以最少的修改工作:

ALTER TABLE `projectID.datasetID.fooTable`
ADD COLUMN barColumn DATE;

BigQuery 不支持ALTER TABLE或其他 DDL 语句,但您可以考虑提交功能请求。目前,您需要在 BigQuery UI 的表中打开,然后使用"添加新字段"按钮添加列,或者如果您使用的是 API,则可以使用 tables.update。

my_old_table

A,B,C
1,2,3
2,3,4

CREATE TABLE IF NOT EXISTS my_dataset.my_new_table    
AS    
SELECT a,b,c,     
"my_string" AS d, current_timestamp() as timestamp     
FROM my_dataset.my_old_table   

my_new_table

a,b,c,d,时间戳
1,2,3,my_string,2020-04-22 17:09:42.987987 UTC
2,3,4,my_string,2020-04-22 17:09:42.987987 UTC

图式:
A:整数
b:整数
c:整数
d:字符串
时间戳:时间戳

我希望一切都清楚:)这样,您可以轻松地向现有表添加新列,还可以指定数据类型。之后,如有必要,您可以删除旧表。:)

最新更新