我有个递归的sql语句,在mysql8下是没问题的,但是在tidb7.5下确保错。怀疑TIDB不支持在 with recursive r ()中查询视图,具体的语句是这样的:
with recursive r as (
select tt.ID, tt.P_ID from sys_org tt where tt.p_id = 0
UNION ALL
select tt.ID, tt.P_ID from sys_org tt,r where tt.P_ID = r.ID
) select * from r
其中sys_org是个视图,里面存储了组织的数据,ID是主键,P_ID是组织的上级ID。TIDB报错如下:
1356 - View ‘dsp.sys_org’ references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
sys_org这个视图的定义很简单,就是从另一个库表中查询出来: