SQL> select column_name from user_cons_columns where rownum < 5;COLUMN_NAME
------------------------------------
STATION_UP_ID
STATION_ID
USER_ID
FUNCTION_IDExecuted in 0.016 secondsSQL>

解决方案 »

  1.   

    还是没搞出来 rownum<5是什么意思
      

  2.   

    rownum<5
    表示只选4条记录。
      

  3.   

    那好像还是没法知道一个表中是主键的字段名称呀,因为SQL中没提到表名。
      

  4.   

    select owner,CONSTRAINT_NAME,TABLE_NAME
      from  user_constraints 
     where conSTRAINT_NAME not like 'SYS_%'
     and constraint_type='P'
     order by CONSTRAINT_NAME,table_name;
      

  5.   

    回复人: tian00weiwei(weiwei) ( ) 信誉:98  2005-08-30 15:27:00  得分: 0  
     
     
       select owner,CONSTRAINT_NAME,TABLE_NAME
      from  user_constraints 
     where conSTRAINT_NAME not like 'SYS_%'
     and constraint_type='P'
     order by CONSTRAINT_NAME,table_name;
      
     
    他已经说得很清楚了,使用该查询可以得到所有得表得主键约束
    其实最简单得方法是利用plsql develop工具或者oracle自带的dba studio 图形化工具可以清楚的查看
    每一个表的结构(包括主外键、约束等等)
      

  6.   

    我是想知道一个表哪个字段是主键,而不管主键是什么名称,我是在做一个程序需要知道一个表中各个字段的约束,好创建表的时候用.需要在程序中使用sql来获取,不能通过视图什么的来查看。
      

  7.   

    select owner,CONSTRAINT_NAME,TABLE_NAME
      from  user_constraints 
     where conSTRAINT_NAME not like 'SYS_%'
     and constraint_type='P'
     and table_name='TABLENAME';
    最后一行的TABLENAME为你要查找的表名,必须为大写.
      

  8.   

    看来没有直接得到表的主键字段的sql了,只有先找到主键名称,在通过主键名称查找字段名称了,哪一个主键名称在一个数据库中是不是唯一的?
      

  9.   

    表的主外键关系的SQL:
    select table_name,constraint_name,column_name
    From user_cons_columns
    Where table_name = '表名'