【发布时间】:2018-12-05 00:59:36
【问题描述】:
我正在尝试向表中插入多行,其中一列的值来自另一个查询。但是我收到以下错误
用作表达式的子查询返回多于一行
我应该怎么做?
INSERT INTO
accounts_account_preferences (account_id, preference_id)
VALUES
((SELECT account_id
FROM accounts_account_preferences
WHERE preference_id = 1), 2);
【问题讨论】:
-
单独运行
(SELECT account_id FROM accounts_account_preferences WHERE preference_id = 1)查询会得到什么输出。 -
我得到一个 account_ids 列表
-
这就是你得到错误的原因。查询应该返回准确的一个结果。您是否希望插入所有帐户 ID,并且将所有这些 ID 设置为 2?这意味着您想要插入多行?
-
你应该显示示例数据..
-
是的,我想插入所有返回的 account_ids,preference_id = 2
标签: sql postgresql sql-insert