我可以在另一个INSERT或多个INSERT中使用多个返回值吗?



我需要获取anexo的id,然后将结果id列表插入另一个表

with new_id as(INSERT INTO 
clienteproveedor.anexo
(
codigo,
estado,
facturar,
observaciones,
servicioproductocontratadoid,
formaspagoid  
)  
select           
ServiciosPorAnexo.CodAnexo,
ServiciosPorAnexo.cancelado,
serviciosporanexo.facturacion,
ServiciosPorAnexo.MotivosElim,
ServiciosPorAnexo.codigo_servicio,
ServiciosPorAnexo.FormaPago
from clienteproveedor.serviciosporanexo 
returning id);

是的,你可以做到,而且你很接近。你的问题是你的returning条款在错误的地方。试一试:

with new_id(id) as
(INSERT INTO 
clienteproveedor.anexo
(
codigo,
estado,
facturar,
observaciones,
servicioproductocontratadoid,
formaspagoid
) 
retuning id 
)  
select           
ServiciosPorAnexo.CodAnexo,
ServiciosPorAnexo.cancelado,
serviciosporanexo.facturacion,
ServiciosPorAnexo.MotivosElim,
ServiciosPorAnexo.codigo_servicio,
ServiciosPorAnexo.FormaPago
from clienteproveedor.serviciosporanexo 
where ServiciosPorAnexo.id in 
(select id from new_id);

注意:没有测试,因为我没有表定义也没有示例数据。

最新更新