有这样的需求,两张表会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就永远不会重复了。