【问题标题】:Detecting circular references among rows in a SQL table [duplicate]检测 SQL 表中行之间的循环引用 [重复]
【发布时间】:2012-12-20 22:23:43
【问题描述】:

可能重复:
Detecting circular references in SQL

我需要一种方法来轻松检测 SQL Server 中具有员工/经理关系的表的循环引用。有人写过这个查询吗?

【问题讨论】:

  • 插入时是否要作为触发器执行此操作?或者,您是否正在寻找“事后”类型的报告?
  • 您使用的是哪个 DBMS?甲骨文? PostgreSQL?

标签: sql sql-server


【解决方案1】:

这样的?

select ID
from yourtable a
where exists (select *
              from yourtable b
              where a.SourceID = b.TargetID and
                    a.TargetID = b.SourceID)

当然,这不会检测到大圆圈(即a --> b --> c --> a)。为此,您需要更强大的东西,例如 this

【讨论】:

  • 不知道代码是以“强度”为单位衡量的
  • 我不知道猕猴桃有头发。
猜你喜欢
  • 2011-11-24
  • 2016-12-15
  • 1970-01-01
  • 2020-01-06
  • 2016-04-17
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 2013-10-28
相关资源
最近更新 更多