Google bigquery BigQuery在模式中插入(而不是追加)一个新列

Google bigquery BigQuery在模式中插入(而不是追加)一个新列,google-bigquery,Google Bigquery,是否有一种方便的方法(Python、web UI或CLI)将新列插入现有的BigQuery表(已经有100列左右)并相应地更新模式 假设我想在第49列之后插入它。如果我通过查询来实现这一点,我将必须键入每一个列名,不是吗 更新:建议的答案没有明确说明这如何适用于BigQuery。此外,报告似乎没有涵盖 ALTER TABLE `tablename` ADD `column_name1` TEXT NOT NULL AFTER `column_name2`; 语法。一项测试确认了之后的标识符对B

是否有一种方便的方法(Python、web UI或CLI)将新列插入现有的BigQuery表(已经有100列左右)并相应地更新模式

假设我想在第49列之后插入它。如果我通过查询来实现这一点,我将必须键入每一个列名,不是吗

更新:建议的答案没有明确说明这如何适用于BigQuery。此外,报告似乎没有涵盖

ALTER TABLE `tablename` ADD `column_name1` TEXT NOT NULL AFTER `column_name2`;

语法。一项测试确认了
之后的
标识符对BigQuery不起作用。

我认为用简单的方法执行此操作是不可能的,我认为在一些解决方法中可以达到此目的,例如:

  • 添加列之后
  • 添加列之后
  • 另一方面,我无法理解这是如何有用的,对于这个需求,我唯一能想到的场景是,如果您使用的是
    SELECT*
    ,这在使用BigQuery时是不推荐的。如果不是这样,请分享您的使用案例,以便更好地了解它


    由于这不是BigQuery的当前功能,因此您可以提交一份申请该功能的文件。

    这是否回答了您的问题@FERNANDOCID不,它不是BigQuQuy不允许你在中间插入一个列。您必须重新创建该表并将数据迁移到服务器上`创建或替换表。。。作为选择。。。“允许您在一次操作中完成此操作。@FabianBosler,您是否介意解释一下为什么需要在特定列之后插入列?这是为了在不手动调整列顺序的情况下支持
    SELECT*FROM…
    ,还是您需要支持更复杂的场景?@YunZhang这只是为了表面上的原因。我重视描述和结构。所讨论的表是一个基表,我确实希望人们查看模式并阅读列描述,我希望将逻辑上应该彼此接近的列放在一起。我想一个
    SELECT*EXCEPT(cols\u after)、new col、cols after
    至少减少了要输入的col名称的数量。这只是出于表面的原因。我重视描述和结构。所讨论的表是一个基表,我确实希望人们查看模式并阅读列描述,我希望将逻辑上应该彼此接近的列放在一起。我想SELECT*EXCEPT(cols_after)、new col、cols after至少可以将列名称的数量减少到typeSELECT*EXCEPT(col),这是一种从查询结果创建表之后的好方法,特别是如果您想为用户获取表名的话。