|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。本文先容的是用干系数据库来存储CFG(把持流程图)的信息。在查询时,为了失掉一切dominate干系的了局,利用了CTE来举行递回查询。本文先容的是用干系数据库来存储CFG(把持流程图)的信息。在查询时,为了失掉一切dominate干系的了局,利用了CTE来举行递回查询。
复杂例子以下:
1.现有表testRe布局以下
2.欲失掉的查询了局为找到id=a的项的一切pId,即b、c、d。
3.利用CTE做递回查询:- WITHRe_CTE(id,pId,Level)Technorati标签:sqlserver,CTE,递回,查询AS(SELECTid,pId,1AS[Level]FROMtestReWHEREid=aUNIONALLSELECTt.id,t.pId,[Level]+1FROMtestRetINNERJOINRe_CTEctONt.id=ct.pId)SELECT*FROMRe_CTE
复制代码 个中,Level为可选项
4.查询了局为:
5.CTE的复杂申明(参考MSDNhttp://msdn.microsoft.com/zh-cn/library/ms186243%28SQL.90%29.ASPx):- WITHcte_name(column_name[,...n])AS(CTE_query_definition–-Anchormemberisdefined.UNIONALLCTE_query_definition–-Recursivememberisdefinedreferencingcte_name.)--StatementusingtheCTESELECT*FROMcte_name
复制代码 一个递回CTE布局必需最少包括一个定位点成员和一个递回成员。
实行时:
将CTE表达式拆分为定位点成员和递回成员。
运转定位点成员,创立第一个挪用或基准了局集(T0)。
运转递回成员,将Ti作为输出,将Ti+1作为输入。
反复步骤3,直到前往空集。
前往了局集。这是对T0到Tn实行UNIONALL的了局。
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继 |
|