如何向 Google Big Query 中的现有表添加新的默认列?

问题描述 投票:0回答:1
现状

我有一个名为

orders
的 bigquery 表,其中包含一些列和大约 50 万行。

我需要什么

该表需要有一个名为

ingestion_time
的新列,其类型为
DATETIME
,在插入每行时默认为新加坡当前当地时间 (UTC+8h)。

默认值是必要的,以确保任何正在插入表中的进程可以继续执行此操作,而无需知道新列。

问题

最简单、最安全的方法是什么?从一些搜索来看,大查询可以

ALTER
表添加新列,但无法为其插入默认值。

如果我创建一个新表,它会从空开始吗?或者,有没有办法创建一个新表,继承所有行和以前的列,并添加具有默认值的新列?

database google-cloud-platform google-bigquery default alter-table
1个回答
0
投票

您可以在现有表中添加列,但需要分几个步骤,如下所示

-- add the column
alter table <table> add column <field> timestamp;

-- define the default behavior
alter table <table> alter column <field> set default current_timestamp()

-- Optionally fill the previous existing rows
update <table> set <field>=current_timestamp() where true
© www.soinside.com 2019 - 2024. All rights reserved.