【发布时间】:2022-12-18 14:23:39
【问题描述】:
我在用Postgres 14并写一个数据库查询以便我可以在tag 表中插入一个新行:
| id | team_id | name |
|---|---|---|
| 2 | 4 | London On |
就这么简单:
INSERT INTO tag (team_id, name) SELECT :teamId, :name;
$stmt->bindValue("teamId", 4, PDO::PARAM_INT);
$stmt->bindValue("name", 'London On', PDO::PARAM_STR);
$stmt->bindValue("teamMemberId", 428, PDO::PARAM_STR);
在 tag 表中,我有 ManyToOne 与 team_member_tag 表的关系,应该如下所示:
| id | team_member_id | tag_id |
|---|---|---|
| 314 | 428 | 2 |
我想在插入 tag 表时将数据的 INSERT 实现到 team_member_tag 表中。我在示例中写了所有需要的参数。
试过:
$stmt = $this->getConnection()->prepare(
'
INSERT INTO tag
(
team_id,
name
) VALUES (
:teamId,
:name,
) RETURNING tag.id
'
);
$stmt->executeQuery();
$stmt2 = $this->getConnection()->prepare('
INSERT INTO team_member_tag (team_member_id, tag_id)
VALUES
( :workspaceMemberId,
(select id from tag)
)
');
$stmt2->bindValue('workspaceMemberId', $workspaceMemberId);
$stmt2->executeQuery();
现在错误:
违反基数:7 错误:用作表达式的子查询返回多于一行
你能帮忙吗?谢谢
【问题讨论】:
标签: sql postgresql insert sql-insert