有这样的需求,两张表会UNION ALL到一起去,然后递归成树状图展示,那么两张表的id如果都是1,那么就造成无限循环直到报溢出的错误。为了解决这个问题我就在表添加的时候入手,写了如下sql。
select max (t.id)+1 as maxid from(
SELECT nvl(MAX(B.MAPGROUPID),0) AS id FROM gsa_gis_mapgroup B
UNION ALL
SELECT nvl(MAX(A.MAPID),0) AS id FROM gsa_gis_map A
) t
不管是哪个表,只要是最大值的那个进行+1操作,那么两张表的id就永远不会重复了。
博客指出两张表UNION ALL后递归成树状图展示时,若两张表id相同会导致无限循环报错。为解决此问题,从表添加环节入手,通过对最大值id进行+1操作,确保两张表的id永远不会重复,并给出相应思路。

被折叠的 条评论
为什么被折叠?



