Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用WITH查询插入到表中,并将返回的id插入到另一个表中?_Sql_Postgresql - Fatal编程技术网

Sql 如何使用WITH查询插入到表中,并将返回的id插入到另一个表中?

Sql 如何使用WITH查询插入到表中,并将返回的id插入到另一个表中?,sql,postgresql,Sql,Postgresql,如果表2中只存在“value”,我将尝试在名为table1的表中插入一行。新创建的行返回一个id,我希望通过WITH查询使用该id,并将其插入第三个名为table3的表中 下面是我使用的sql语句 使用新的_键作为( 插入表1(名称、值) 选择“测试”,然后选择值 来自表2 其中value='some_value' 返回id ) 插入表3(表1\u id) 值(新的_键); WITH查询中的INSERT查询工作并返回一个id。不幸的是,整个语句返回“new_key column not EXI

如果表2中只存在“value”,我将尝试在名为table1的表中插入一行。新创建的行返回一个id,我希望通过WITH查询使用该id,并将其插入第三个名为table3的表中

下面是我使用的sql语句

使用新的_键作为(
插入表1(名称、值)
选择“测试”,然后选择值
来自表2
其中value='some_value'
返回id
)
插入表3(表1\u id)
值(新的_键);

WITH查询中的INSERT查询工作并返回一个id。不幸的是,整个语句返回“new_key column not EXISTING”。

您需要从CTE中选择值:

WITH new_key AS (
    INSERT INTO table1(name, value) 
    SELECT 'test', value
        FROM table2 
    WHERE value = 'some_value'
    RETURNING id
)
INSERT INTO table3(table1_id) 
SELECT id
FROM new_key;

插入不返回“值”。。你需要插入..选择这正是我不理解的。非常感谢。