Postgres-插入多对一关系



我正在使用Postgres14并编写sql查询,以便在tag表中插入新行:

伦敦
id team_id 名称
2 4

这是不正确的语法:

INSERT INTO team_member_tag (team_member_id, tag_id)
VALUES
( :workspaceMemberId,
(select id from tag)
)

因为select id from tag可以获取许多记录,但内部值必须只有一个值。

对于向表中插入多行,您可以使用以下语法,例如:

INSERT INTO team_member_tag (tag_id)
select id from tag

但是,如果您需要在team_member_tag表中插入仅插入的标记值,则可以使用以下语法:

with t1 as (
INSERT INTO tag (team_id, name) VALUES (:teamId,:name)
RETURNING id
) 
insert into team_member_tag (team_member_id, tag_id)
select 10, t1.id from t1

10-team_member_id字段的样本值。

最新更新