代码之家  ›  专栏  ›  技术社区  ›  HotTester

如何查找表A的主键有外键约束的表列表?

  •  2
  • HotTester  · 技术社区  · 15 年前

    如何快速找到对特定表的主键具有外键约束的各种表的列表。

    敬请指导…

    1 回复  |  直到 15 年前
        1
  •  4
  •   Andomar    15 年前

    下面是一个使用 information_schema ,改编自 this blog post :

    SELECT  FK_Table = FK.TABLE_NAME
    ,       FK_Column = CU.COLUMN_NAME
    ,       PK_Table = PK.TABLE_NAME
    ,       PK_Column = PT.COLUMN_NAME
    ,       Constraint_Name = C.CONSTRAINT_NAME
    FROM    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
    JOIN    INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK 
    ON      C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
    JOIN    INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK 
    ON      C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
    JOIN    INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU 
    ON      C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
    JOIN    (
            SELECT  i1.TABLE_NAME, i2.COLUMN_NAME
            FROM    INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
            JOIN    INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 
            ON      i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
            WHERE   i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
            ) PT 
    ON      PT.TABLE_NAME = PK.TABLE_NAME
    WHERE   PK.TABLE_NAME = 'PrimaryKeyTable'
    
    推荐文章