生成 uuid 然后从另一个 table 插入数据

Generate uuid and then insert data from another table

我在 Postgres 中有 2 个 table

主要 实体
id id
姓名 姓名
main_id

我需要为实体生成 id,从 main 中获取名称和 id 并插入到实体中 table

INSERT INTO entity (select uuid_generate_v4(), name, main_id)
SELECT name, id FROM main

但是我得到这个错误

ERROR:  syntax error at or near "SELECT"

我知道重点是我插入的参数比收到的要多,但我不知道如何进一步处理

第一对括号定义了 INSERT 语句的目标。您需要将 UUID 生成移动到 SELECT 部分:

INSERT INTO entity (id, name, main_id)
SELECT uuid_generate_v4(), name, id 
FROM main