我想在不使用遗留 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:字符串
时间戳:时间戳
我希望一切都清楚:)这样,您可以轻松地向现有表添加新列,还可以指定数据类型。之后,如有必要,您可以删除旧表。:)