【问题标题】:SQL Query for primary key, its data type, and its column name?SQL 查询主键、它的数据类型和它的列名?
【发布时间】:2011-03-18 19:58:16
【问题描述】:

正如标题所暗示的,我很好奇是否有人知道如何查询表的主键、其数据类型和主键列的名称。今天早些时候,我只要求主键列,效果很好。但是,我也不确定如何提取其数据类型和列名。任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 请注意,主键可能包含多个列。

标签: sql oracle oracle11g


【解决方案1】:

应该这样做:

SELECT ac.constraint_name, acc.column_name, acc.position
     , atc.data_type, atc.data_length
  FROM all_constraints ac JOIN all_cons_columns acc 
                               ON (ac.CONSTRAINT_NAME = acc.CONSTRAINT_NAME)
                          JOIN all_tab_cols atc ON (ac.owner = atc.owner AND 
                               ac.table_name = atc.TABLE_NAME AND 
                               acc.COLUMN_NAME = atc.COLUMN_NAME)
 WHERE ac.owner = 'table_owner'
   AND ac.table_name = 'your_table'
   AND ac.constraint_type = 'P'
 ORDER BY acc.position;

【讨论】:

    【解决方案2】:

    使用查询表user_tab_columnsall_tab_columns

    select column_name, data_type, data_length from user_tab_columns 
    where table_name = 'MY_TABLE';
    
    select * from all_tab_columns 
    where owner = 'THE_SCHEMA_OWNER';
    

    【讨论】:

    • 如果您以“THE_SCHEMA_OWNER”身份登录,您还可以选择查询 user_tab_cols。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多