【问题标题】:How to query for a primary key in oracle 11goracle 11g如何查询主键
【发布时间】:2011-03-18 14:38:49
【问题描述】:

有人知道如何在 Oracle 11g 中查询表的主键吗?我在 SQL Server 上看到了一个类似的问题,但我没有在该线程上尝试答案。

谢谢!

【问题讨论】:

    标签: sql oracle11g


    【解决方案1】:

    作为拥有该表的用户,您可以这样做:

    select constraint_name, status, deferrable, deferred, validated, generated 
    from user_constraints 
    where constraint_type = 'P' and table_name = 'Table Name'
    

    更新:我认为这可以满足您的需求。

    SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
    FROM all_constraints cons, all_cons_columns cols
    WHERE cols.table_name = 'Table Name'
    AND cons.constraint_type = 'P'
    AND cons.constraint_name = cols.constraint_name
    AND cons.owner = cols.owner
    ORDER BY cols.table_name, cols.position
    

    您可以查看this 网站了解更多详情。

    【讨论】:

      【解决方案2】:
      SELECT cols.table_name
        ||' - '
        ||cols.column_name primary_key
      FROM all_constraints cons,
        all_cons_columns cols,
        user_tables ut
      WHERE cons.constraint_type = 'P'
      AND cons.constraint_name   = cols.constraint_name
      AND cons.owner             = cols.owner
      AND cols.table_name        = ut.table_name
      ORDER BY cols.table_name;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-12
        • 2018-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多