我正在寻找一个从我的BigQuery表中删除列的选项,例如ALTER TABLE TABLE_NAME DROP COLUMN_NAME
- 但我在网上找到的只是删除旧表并创建一个新表。
我只是想知道,BigQuery中没有这个选项有合理的理由吗?
答案 0 :(得分:5)
删除列意味着从构成表的所有Capacitor files中删除数据,这是一项昂贵的操作。如果BigQuery只是删除与该列相关的元数据,那么您可能需要为实际查询的幻像列收取存储空间,这不是理想的。
当您添加列时,相反,BigQuery会将过去文件中的缺失列视为具有所有NULL
值,并且不需要修改它们。
删除列有两种不同的选项:
答案 1 :(得分:2)
BigQuery 现在支持 DROP COLUMN
ALTER TABLE [[project_name.]dataset_name.]table_name
DROP COLUMN [IF EXISTS] column_name [, ...]
答案 2 :(得分:1)
您可以通过重写表删除列。
CREATE OR REPLACE TABLE
temp.table_name AS
SELECT
* EXCEPT (column_name)
FROM
temp.table_name