问题描述
我有一个没有任何唯一ID的现有表。我打算使用GENERATE_UUID()
语句生成代理键,但是我确定不是如何插入此新列...最好的选择是什么?
解决方法
一种方法是使用CREATE或REPLACE TABLE ... AS SELECT
CREATE OR REPLACE TABLE table_a
AS SELECT GENERATE_UUID() uuid,* FROM table_a
缺点是:
- 表的元数据丢失(表选项,列说明等)
- 列的可空性丢失,所有列都变为NULLABLE
如果两者都可以接受,那么上面的方法是最简单的方法
如果没有,那么您需要通过UI or API添加一列,然后执行
UPDATE table_a
SET uuid = GENERATE_UUID()
WHERE uuid IS NULL