desc tableName无法查看一张表那一个是主键,有什么办法显示出来?

解决方案 »

  1.   

    select INDEX_NAME,INDEX_TYPE,TABLE_NAME,INCLUDE_COLUMN from USER_INDEXES;
      

  2.   

    select constraint_name, constraint_type from user_constraints 
    where table_name = 'TEST_PK'
    and  constraint_type=p;
      

  3.   

    select constraint_name, constraint_type from user_constraints 
    where table_name = 'TEST_PK' 
    and constraint_type='P';
      

  4.   

    select column_name,table_name from USER_CONS_COLUMNS
    where constraint_name in(select constraint_name from user_constraints 
    where table_name = 'TEST_PK' 
    and constraint_type='P');
      

  5.   

    SELECT COLUMN_NAME
      FROM USER_CONS_COLUMNS
     WHERE CONSTRAINT_NAME = (SELECT CONSTRAINT_NAME
                                FROM USER_CONSTRAINTS
                               WHERE CONSTRAINT_TYPE = 'P'
                                 AND TABLE_NAME = 'TABLE_NAME');
      

  6.   

    SELECT COLUMN_NAME
      FROM USER_CONS_COLUMNS
     WHERE CONSTRAINT_NAME = (SELECT CONSTRAINT_NAME
                                FROM USER_CONSTRAINTS
                               WHERE CONSTRAINT_TYPE = 'P'
                                 AND TABLE_NAME = 'TABLE_NAME');
    下面的取得某表中类型为primary的CONSTRAINT_NAME
    ,表USER_CONSTRAINTS为一个当前用户的系统字典表
    SELECT CONSTRAINT_NAME
                                FROM USER_CONSTRAINTS
                               WHERE CONSTRAINT_TYPE = 'P'
                                 AND TABLE_NAME = 'TABLE_NAME'
    然后在字典表USER_CONS_COLUMNS,包含所有表的列
    SELECT COLUMN_NAME
      FROM USER_CONS_COLUMNS