How to I find all tables that have foreign keys that reference particular table.column AND have values for those foreign keys?

前端 未结 1 435
太阳男子
太阳男子 2020-12-13 20:01

I have a table whose primary key is referenced in several other tables as a foreign key. For example:

CREATE TABLE `X` (
  `X_id` int NOT NULL auto_increment,         


        
相关标签:
1条回答
  • 2020-12-13 20:18

    try this query:

    You have to use sysreferences and sysobjects tables to get the information

    Query below gives all the foriegn keys as well as parent tables with column names from the database

    select cast(f.name as varchar(255)) as foreign_key_name
    , cast(c.name as varchar(255)) as foreign_table
    , cast(fc.name as varchar(255)) as foreign_column
    , cast(p.name as varchar(255)) as parent_table
    , cast(rc.name as varchar(255)) as parent_column
    from  sysobjects f
    inner join sysobjects c on f.parent_obj = c.id
    inner join sysreferences r on f.id = r.constid
    inner join sysobjects p on r.rkeyid = p.id
    inner join syscolumns rc on r.rkeyid = rc.id and r.rkey1 = rc.colid
    inner join syscolumns fc on r.fkeyid = fc.id and r.fkey1 = fc.colid
    where f.type = 'F'
    
    0 讨论(0)
提交回复
热议问题