gpt4 book ai didi

sql - PostgreSQL 不接受带有 VALUES 和 FROM 的 INSERT?

转载 作者:行者123 更新时间:2023-11-29 12:30:43 25 4
gpt4 key购买 nike

我正在尝试获取从 SELECT 获得的值,然后将该值与其他值一起INSERT 到另一个表中:

WITH data AS (SELECT name FROM programmes WHERE id = $1)
INSERT INTO purchases (name, other_details, some_more_stuff)
VALUES (data.name, $2, $3) FROM data;

但 PostgreSQL 给出 42601 ERROR: syntax error at or near "FROM"LINE 1: ...(data.name, $2, $3) FROM data

INSERTdocumentation没有在同一查询中同时给出 VALUESFROM 的任何示例。这种查询的正确语法是什么?还是无法以这种方式表达我的查询?

最佳答案

您不需要公用表表达式。

INSERT INTO purchases (name, other_details, some_more_stuff) 
SELECT name, $2, $3
FROM programmes
WHERE id = $1

您尝试应用的语法不正确。您不能在 VALUES 列表中使用表或查询中的列,因为该列表必须仅包含常量。来自 the documentation (强调):

VALUES provides a way to generate a "constant table" that can be used in a query without having to actually create and populate a table on-disk.

另见 VALUES syntax.

关于sql - PostgreSQL 不接受带有 VALUES 和 FROM 的 INSERT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com