如何使用另一个模式修改后的模式创建新表?

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

我正在GCP上使用Google BigQuery。

我想复制现有表的架构,并将现在为foobar类型的字段(STRING)中的1更改为RECORD,并创建foobar.potatofoobar.nada,...,[ C0],并使用新架构创建新表。

最好/最快的方法是什么?不幸的是,有很多字段,所以我不能只手动创建一个新表。

找到了一种通过以下方式收集架构的方法:

foobar.apple

没有太大帮助。并且当我尝试编辑表的架构以希望获取该“文本模式”时,它仅适用于新字段。

sql google-bigquery
1个回答
0
投票

如果您只想创建一个新表,它将看起来像这样:

SELECT
 * EXCEPT(is_generated, generation_expression, is_stored, is_updatable)
FROM
 `myproject`.mydataset.INFORMATION_SCHEMA.COLUMNS
WHERE
 table_name="old_table"

如果只需要结构,则可以执行以下操作:

select t.* except (foobar),
       struct('potato' as potato, 'nada' as nada) as foobar
from t;
© www.soinside.com 2019 - 2024. All rights reserved.