Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
更新选择不在postgresql中工作_Sql_Postgresql - Fatal编程技术网

更新选择不在postgresql中工作

更新选择不在postgresql中工作,sql,postgresql,Sql,Postgresql,我有一个要求做一些订单的基础上更新。我已经在Oracle中为此创建了一个查询,下面给出了该查询 update (select work_id work_id, task_id task_id from TRANSACTION s where s.task_id is null order by s.dynamic_key) set task_id=2, work_id=SEQ_TRANS.NEXTVAL. 在上面的查询中-SEQ_TRANS是序列 此查询在oracle中运行

我有一个要求做一些订单的基础上更新。我已经在Oracle中为此创建了一个查询,下面给出了该查询

update (select work_id work_id, task_id task_id  from TRANSACTION s where 
        s.task_id is null order by s.dynamic_key) set task_id=2, work_id=SEQ_TRANS.NEXTVAL.
在上面的查询中-SEQ_TRANS是序列

此查询在oracle中运行。但不是在PostgreSQL中工作


我希望获得oracle和PostgreSQL中都支持的等效查询,此查询应根据顺序进行更新。

在这两个DBMS中没有可以不变工作的查询。您不能在PostgreSQL中直接更新子选择。此外,不可能按特定顺序执行任何
更新。PostgreSQL具有延迟约束的能力(大多数情况下,唯一的约束使开发人员希望按照特定的顺序进行更新)但是如果我猜对了,您需要顺序,因为序列值生成。如果正确,可以在中使用子选择(因为子选择可以有顺序)。但是,这种方法在Oracle中可能不起作用。是的。你是对的。我需要按顺序更新序列。你们有带子选择的样本吗?