我没有找到更改表名的重命名选项。我有一个必须重命名表的情况,唯一的方法是将结果选择为新表。这个查询要花钱,而且无缘无故地花很长时间。
当我需要重命名嵌套表时尤其痛苦,所以我必须导出,甚至需要处理结果集才能将其导入回来。
有什么我想念的吗?有什么即将到来的吗?
我没有找到更改表名的重命名选项。我有一个必须重命名表的情况,唯一的方法是将结果选择为新表。这个查询要花钱,而且无缘无故地花很长时间。
当我需要重命名嵌套表时尤其痛苦,所以我必须导出,甚至需要处理结果集才能将其导入回来。
有什么我想念的吗?有什么即将到来的吗?
没有重命名选项,但有一个复制操作,它使用快速快照过程。除了额外的存储成本外,这不会产生任何额外费用(当然您可以删除原始表,这样您只需为存储收取一次费用)。
您可以在 BigQuery 中执行此操作,方法是点击表名和表名旁边的下拉箭头,然后选择“复制表”。或者,您可以使用bq cp
bq 命令行工具中的命令。
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
使用 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
)'