生成代理键并将其插入现有的 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