在开发中遇到问题的场景:支付系统角色-销售(共三级),服务商(无限级),某个销售的银行编码修改,需要同步修改其下所有子级的银行编码。
最终决定 使用PG的递归查询:
WITH RECURSIVE T(ID) AS(
SELECT ID FROM xxx WHERE ID =***
UNION ALL
SELECT T1.ID
FROM xxx T1 JOIN T ON T1.parent_seller_id=T.ID
)
SELECT ID FROM T;
返回
这样就可以查询出所有子级的信息,在进行同步修改