请教各位一个多表查询的问题,望指点迷津!!
lavee 2007-08-13 12:31:03 我现在做的项目中需要用一个SQL语句(select。。from。。。) 查询出一个表中所有列的基本信息,具体包括:1.字段名 2.字段类型 3.是否可空 4.是否为主键。
前3个信息我都可以从 user_tab_columns 中读出来,但是“是否主键”就不好办了,比如说某个列不是主键,我象这样从user_tab_columns,user_constraints ,user_cons_columns 三个表中查询我需要的信息:
“select a.COLUMN_NAME as 字段名,a.DATA_TYPE as 字段类型,a.NULLABLE as 是否可空,b.CONSTRAINT_TYPE as 约束类型 from user_tab_columns a,user_constraints b,user_cons_columns c where a.table_name=c.table_name and a.column_name=c.column_name and c.constraint_name=b.constraint_name and a.table_name='my_table_name' ”
然后根据约束类型再来判断是否是主键('P'),可是问题在于:如果某个字段根本就没有约束,那么查询出来的结果中就没有这个字段的任何信息,也许是因为这个字段在user_constraints和user_cons_columns中根本不存在,所以联合查询就查不到了。
那么我该怎么写这个SQL语句才能达到目的呢??
这个问题我弄很久了,还是没能解决,真是郁闷,急盼各位高手能给我指点一下,实在感激不尽!
另外:小弟分已经散完了,但还是希望能得到各位宝贵的指教,因为实在解决不了了。。谢谢!!