尝试删除记录时出现以下错误:
错误:“SPO”处或附近的语法错误 第1行:删除SPO,SP ^
这是我的代码:
DELETE SPO,SP
FROM stock_pack_operation SPO
INNER JOIN stock_picking SP ON sp.id = spo.picking_id
WHERE sp.company_id = 1;
你不能加入Postgres的FROM
的DELETE
。
如果你想用stock_picking sp
的company_id
和1
中的所有相应行删除stock_pack_operation
中的所有行,你可以使用带有RETURNING
子句的cte。
WITH cte
(
DELETE FROM stock_picking sp
WHERE sp.company_id = 1
RETURNING sp.id
)
DELETE FROM stock_pack_operation spo
USING cte
WHERE spo.picking_id = cte.id;
如果想删除stock_pack_operation
中picking_id
为id
的stock_picking
为1
公司的所有行,你可以使用USING
。
DELETE FROM stock_pack_operation spo
USING stock_picking sp
WHERE spo.picking_id = sp.id
AND sp.company_id = 1;