gpt4 book ai didi

firebird - 在一个查询中获取所有表/列及其数据类型 firebird

转载 作者:行者123 更新时间:2023-12-01 11:26:29 36 4
gpt4 key购买 nike

我想查询以下内容:所有表及其列和数据类型

到目前为止,我从 http://www.firebirdfaq.org/faq174/ 得到了这个

select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source
from rdb$relation_fields f
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name
and r.rdb$view_blr is null
and (r.rdb$system_flag is null or r.rdb$system_flag = 0)
order by 1, f.rdb$field_position

我刚刚添加了上面的代码“f.rdb$field_source”来向我展示该表的信息,这应该允许我找到该表 RDB$FIELDS 中列的以下数据类型

SELECT * from  RDB$FIELDS 

我想在上面的查询中添加这样的内容:

select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source
from rdb$relation_fields f
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name
and r.rdb$view_blr is null
and (r.rdb$system_flag is null or r.rdb$system_flag = 0)
order by 1, f.rdb$field_position

此外,还需要发生以下情况:

select  a.RDB$FIELD_TYPE from RDB$FIELDS 
where RDB$FIELD_NAME is equal to the .rdb$field_source
from rdb$relation_fields

所以我有一张表,其中包含 Tablename/Columnname/TypeofData。

我在 SQL 方面经验不足。我希望我的问题足够清楚

最佳答案

只需加入 RDB$FIELDS 表:

SELECT
R.RDB$RELATION_NAME,
R.RDB$FIELD_NAME,
R.RDB$FIELD_SOURCE,
F.RDB$FIELD_LENGTH,
F.RDB$FIELD_TYPE,
F.RDB$FIELD_SCALE,
F.RDB$FIELD_SUB_TYPE
FROM
RDB$RELATION_FIELDS R
JOIN RDB$FIELDS F
ON F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCE
JOIN RDB$RELATIONS RL
ON RL.RDB$RELATION_NAME = R.RDB$RELATION_NAME
WHERE
COALESCE(R.RDB$SYSTEM_FLAG, 0) = 0
AND
COALESCE(RL.RDB$SYSTEM_FLAG, 0) = 0
AND
RL.RDB$VIEW_BLR IS NULL
ORDER BY
R.RDB$RELATION_NAME,
R.RDB$FIELD_POSITION

关于firebird - 在一个查询中获取所有表/列及其数据类型 firebird,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946560/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com