如何在不重新创建表的情况下重命名表

时间:2013-05-26 03:57:15

标签: google-bigquery

我没有找到更改表名的RENAME选项。 我有一个案例,我必须重命名一个表,唯一的方法是选择结果到新表。这个查询需要花钱,并且无缘无故地花费很长时间。

当我需要重命名嵌套表时尤其痛苦,因此我必须导出,甚至需要处理结果集才能将其导回。

我想念的任何方式?什么即将推出?

4 个答案:

答案 0 :(得分:20)

没有重命名选项,但有一个复制操作,它使用快速快照过程。除了额外的存储成本之外,这不会产生任何额外费用(当然,您可以删除原始表格,因此您只需支付一次存储费用)。

您可以在BigQuery中执行此操作,方法是单击表名称和表名旁边的下拉箭头,然后选择“复制表”。或者,您可以在bq命令行工具中使用bq cp命令。

答案 1 :(得分:4)

2021 年 5 月,Google 更新了其文档以添加重命名 BigQuery 表的命令。这是文档的链接:https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_rename_to_statement

示例命令:

ALTER TABLE mydataset.mytable RENAME TO mynewtable

答案 2 :(得分:0)

使用except函数重命名数据集

bq query --destination_table practiceDataset.test_sales_orc --replace --use_legacy_sql=false 'SELECT
   * EXCEPT(
    _col16 ),
    _col16 as ingestion_tsp
  FROM (
    SELECT
        * EXCEPT(
            _col0,
            _col1,
            _col2,
            _col3,
            _col4,
            _col5,
            _col6,
            _col7,
            _col8,
            _col9,
            _col10,
            _col11,
            _col12,
            _col13,
            _col14,
            _col15),
            _col0 as order_number,
            _col1 as order_line_number,
            _col2 as version,
            _col3 as order_date,
            _col4 as extamt,
            _col5 as quantity,
            _col6 as vlucost,
            _col7 as model_number,
            _col8 as credit_amount,
            _col9 as written_sales,
            _col10 as product_category,
            _col11 as product_category_code,
            _col12 as product_class,
            _col13 as description_model,
            _col14 as location_code,
            _col15 as location_description
     FROM practiceDataset.sales_data
)'

enter image description here

答案 3 :(得分:0)

好吧,您可以像这样重命名表。

RENAME TABLE tb1 TO tb2, tb3 TO tb4;