生成代理键并将其插入现有的 BigQuery table
Generate and Insert surrogate keys into already existing BigQuery table
我有一个 table 没有任何唯一 ID。我打算使用 GENERATE_UUID()
语句生成代理键,但是我不确定如何插入这个新列...这里最好的选择是什么?
一种方法是使用 CREATE OR REPLACE TABLE ... AS SELECT
CREATE OR REPLACE TABLE table_a
AS SELECT GENERATE_UUID() uuid, * FROM table_a
缺点是:
- table 的元数据丢失(table 选项、列描述等)
- 列的可为空性丢失,所有列都变为 NULLABLE
如果两者都是acceptable,那么上面的方法是最简单的方法
如果没有,则需要通过UI or API添加一列,然后
UPDATE table_a
SET uuid = GENERATE_UUID()
WHERE uuid IS NULL
我有一个 table 没有任何唯一 ID。我打算使用 GENERATE_UUID()
语句生成代理键,但是我不确定如何插入这个新列...这里最好的选择是什么?
一种方法是使用 CREATE OR REPLACE TABLE ... AS SELECT
CREATE OR REPLACE TABLE table_a
AS SELECT GENERATE_UUID() uuid, * FROM table_a
缺点是:
- table 的元数据丢失(table 选项、列描述等)
- 列的可为空性丢失,所有列都变为 NULLABLE
如果两者都是acceptable,那么上面的方法是最简单的方法
如果没有,则需要通过UI or API添加一列,然后
UPDATE table_a
SET uuid = GENERATE_UUID()
WHERE uuid IS NULL