【问题标题】:Finding reference table from foreign key in SQL Developer在 SQL Developer 中从外键查找引用表
【发布时间】:2011-12-19 22:50:15
【问题描述】:

好的,所以我是 SQL 新手,对 Oracle SQLDev 不是很熟悉,但是我正在制作的工具要求我访问 Oracle 数据库并收集一些信息。我试图弄清楚外键指向哪个表。

这个数据库有数千个表。

例子:

我有一个表 (TASKS),其中包含以下列 [id、user、task_type、task_group]。问题是所有这些值都是对应另一个表的id,并且表命名约定不直观。

那么我怎样才能找出task_type 指向的表呢?

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper


    【解决方案1】:
    select acc.table_name REFERENCING_TABLE_NAME, acc.column_name REFERENCING_COLUMN_NAME
    from all_constraints ac1,
    all_constraints ac2,
    all_cons_columns acc
    where ac1.constraint_type = 'P'
    and ac1.table_name = :table_name
    and ac2.r_constraint_name = ac1.constraint_name
    and ac2.constraint_name = acc.constraint_name;
    

    应该可以的

    【讨论】:

      【解决方案2】:

      在此处查看我的帖子(第二个答案),了解如何在 sqldeveloper 中将其添加为扩展:

      How can I find which tables reference a given table in Oracle SQL Developer?

      【讨论】:

        【解决方案3】:
        select table_name, constraint_name, status, owner
        from all_constraints
        where r_owner = :r_owner
        and constraint_type = 'R'
        and r_constraint_name in
         (
           select constraint_name from all_constraints
           where constraint_type in ('P', 'U')
           and table_name = :r_table_name
           and owner = :r_owner
         )
        order by table_name, constraint_name
        

        【讨论】:

          猜你喜欢
          • 2013-02-10
          • 2022-12-05
          • 1970-01-01
          • 1970-01-01
          • 2010-11-11
          • 1970-01-01
          • 1970-01-01
          • 2016-03-09
          • 1970-01-01
          相关资源
          最近更新 更多