2012-06-08 26 views

回答

9

Firebird不支持模式,所以您无法获取该信息。

最接近的可能是老板,您可以通过查询RDB$RELATIONS

编辑

A “模式” 是一个数据库内的命名空间得到。显然你正在寻找表格定义,而不是模式。

您可以通过查询RDB $ FIELDS和RDB $ RELATION_FIELDS检索表的colums和数据类型:

select rf.rdb$relation_name as table_name, 
     rf.rdb$field_name as column_name, 
     case f.rdb$field_type 
     when 14 then 'CHAR' 
     when 37 then 'VARCHAR' 
     when 8 then 'INTEGER' 
     ... 
     end as data_type, 
     f.rdb$field_length, 
     f.rdb$field_scale 
from rdb$fields f 
    join rdb$relation_fields rf on rf.rdb$field_source = f.rdb$field_name 
where rf.rdb$relation_name = 'FOOBAR' 

数据类型存储为列RDB $领域的整数。 Interbase参考指南:http://www.ibphoenix.com/files/60LangRef.zip(与该系统表中的所有其他列以及所有其他系统表一样)记录了该列中的完整列表值。您可能需要查看所有更新指南,以检查自IB 6.0以来系统表是否有任何更改(Firebird手册是** reall *混乱)