【问题标题】:Generate uuid and then insert data from another table生成uuid,然后从另一个表插入数据
【发布时间】:2021-08-12 13:52:42
【问题描述】:

我在 Postgres 中有 2 个表

main entity
id id
name name
main_id

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

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

但我得到了这个错误

ERROR:  syntax error at or near "SELECT"

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

【问题讨论】:

    标签: sql postgresql sql-insert


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!如果在那之后我需要获取这些实体的生成id并将其插入到主表中,例如,作为entity_id
    • 你为什么需要那个? entity 表已经包含对主表的引用。
    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多