我有一个名为
orders
的 bigquery 表,其中包含一些列和大约 50 万行。
该表需要有一个名为
ingestion_time
的新列,其类型为 DATETIME
,在插入每行时默认为新加坡当前当地时间 (UTC+8h)。
默认值是必要的,以确保任何正在插入表中的进程可以继续执行此操作,而无需知道新列。
最简单、最安全的方法是什么?从一些搜索来看,大查询可以
ALTER
表添加新列,但无法为其插入默认值。
如果我创建一个新表,它会从空开始吗?或者,有没有办法创建一个新表,继承所有行和以前的列,并添加具有默认值的新列?
您可以在现有表中添加列,但需要分几个步骤,如下所示
-- 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