更新选择不在postgresql中工作
我有一个要求做一些订单的基础上更新。我已经在Oracle中为此创建了一个查询,下面给出了该查询更新选择不在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中运行
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中可能不起作用。是的。你是对的。我需要按顺序更新序列。你们有带子选择的样本吗?