【问题标题】:Get table name by constraint name [duplicate]通过约束名称获取表名[重复]
【发布时间】:2011-07-11 23:54:44
【问题描述】:

Oracle 约束名称已知。

如何找到应用此约束的表的名称?

【问题讨论】:

    标签: oracle constraints


    【解决方案1】:

    ALL_CONSTRAINTS 描述当前用户可访问的表的约束定义。

    DBA_CONSTRAINTS 描述了数据库中的所有约束定义。

    USER_CONSTRAINTS 描述当前用户架构中表的约束定义

    Select CONSTRAINT_NAME,CONSTRAINT_TYPE ,TABLE_NAME ,STATUS from 
    USER_CONSTRAINTS;
    

    【讨论】:

      【解决方案2】:
      SELECT constraint_name, constraint_type, column_name
      from user_constraints natural join user_cons_columns
      where table_name = "my_table_name";
      

      会给你你需要的东西

      【讨论】:

      • 这个答案是从已知的表名返回约束名,问题是已知约束名需要获取表名
      【解决方案3】:
      SELECT owner, table_name
        FROM dba_constraints
       WHERE constraint_name = <<your constraint name>>
      

      会给你表格的名字。如果您无权访问 DBA_CONSTRAINTS 视图,ALL_CONSTRAINTSUSER_CONSTRAINTS 应该也可以使用。

      【讨论】:

      • 不工作,出现错误“无效的对象名称'USER_CONSTRAINTS'”。请帮忙。
      • @JitendraPancholi - select table_name from user_constraints where constraint_name = 'xxx'; 应该适用于任何用户。你确定你的查询没有错字吗? select owner, object_name from all_objects where object_name = 'USER_CONSTRAINTS' 为您返回什么?
      • 在查询中也添加所有者名称... SELECT owner, table_name FROM dba_constraints WHERE constraint_name = > and owner = >
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 2017-05-26
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多