取得数据库表结构

下面是用连接的方式取得表结构,有4列,最后一列用于标明约束是单一的还是联合的。

适用于oracle,执行需要管理员权限,如果用schema来约束可以查询整个schema的数据库表结构,执行速度有点慢,如果程序中有用最好将查询结果放到 一个表中。可以按照需要对代码进行调整。

select aa.column_name,aa.comments,aa.datatype,bb.constraint_type ,bb.column_name
from 
 (
	 select a.column_name ,a.comments,b.data_type|| 
	 (CASE 
	    WHEN b.data_scale >=0   THEN   '('||b.data_length||','||b.data_scale||')' 
	    ELSE  '('||b.data_length||')' 
	  END 
	 ) as datatype ,a.table_name 
	 from all_col_comments a,all_tab_columns b 
	 where a.table_name=b.table_name and a.column_name=b.column_name 
) aa,
(
	 select DECODE(au.constraint_type, 'P', '主键约束', 'U', '唯一约束') as constraint_type, 
	 cu.constraint_name AS column_name,cu.column_name AS comments ,au.table_name 
	 from all_cons_columns cu, all_constraints au 
	 where cu.constraint_name = au.constraint_name 
   and (au.constraint_type = 'P' or au.constraint_type ='U') 
) bb 
where aa.table_name=bb.table_name(+)  and aa.column_name=bb.comments(+)
 and aa.table_name= '表名' 
 order by bb.constraint_type,aa.column_name asc

mysql就下面两句话修改就行:

select * from information_schema.TABLES where TABLE_SCHEMA='sfp' and TABLE_NAME=?
select * from information_schema.COLUMNS where TABLE_SCHEMA='sfp' and TABLE_NAME=?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值