【发布时间】:2020-06-10 11:48:00
【问题描述】:
是否有方便的方法(Python、Web UI 或 CLI)将新列插入现有 BigQuery 表(已经有 100 列左右)并相应地更新架构?
假设我想在第 49 列之后插入它。如果我通过查询执行此操作,我将不得不输入每个列名,不是吗?
更新:建议的答案没有明确说明这如何适用于 BigQuery。此外,documentation 似乎没有覆盖
ALTER TABLE `tablename` ADD `column_name1` TEXT NOT NULL AFTER `column_name2`;
语法。一项测试证实 AFTER 标识符不适用于 BigQuery。
【问题讨论】:
-
@FernandoCid 不,它没有
-
BigQuery 目前不允许您在中间插入列。您必须重新创建表并迁移数据。 `CREATE OR REPLACE TABLE ... AS SELECT ..." 允许您在一个操作中完成此操作。
-
@FabianBosler,您介意解释一下为什么需要在特定列之后插入一列吗?这是为了支持
SELECT * FROM ...,而不需要手动调整列的顺序,还是你有更复杂的场景需要支持? -
@YunZhang 真的只是为了美观。我重视描述和结构。有问题的表是一个基表,我确实希望人们查看模式并阅读列描述,并且我希望将列放在一起,这些列在逻辑上应该彼此接近。我猜
SELECT * EXCEPT (cols_after), new col, cols after至少会减少要键入的列名称的数量。
标签: google-bigquery