首页 > 解决方案 > 生成uuid,然后从另一个表插入数据

问题描述

我在 Postgres 中有 2 个表

主要的 实体
ID ID
姓名 姓名
main_id

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

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

但我得到这个错误

ERROR:  syntax error at or near "SELECT"

我知道重点是我插入的论点比我收到的要多,但我不知道如何进一步进行

标签: sqlpostgresqlsql-insert

解决方案


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

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

推荐阅读