如何在Firebird中获取外键引用表

Jon*_*nas 2 firebird

table1具有table2的外键(一个table2到table1).如何获取table2字段列表:

"table2.f1"
"table2.f2"
"table2.f3"
Run Code Online (Sandbox Code Playgroud)

只需给出"table1.f3"(具有table2的外键).如何从系统表中选择它?

谢谢!

Jon*_*nas 10

列出FK表和字段引用的所有内容.

SELECT
    detail_index_segments.rdb$field_name AS field_name,
    master_relation_constraints.rdb$relation_name AS reference_table,
    master_index_segments.rdb$field_name AS fk_field

FROM
    rdb$relation_constraints detail_relation_constraints
    JOIN rdb$index_segments detail_index_segments ON detail_relation_constraints.rdb$index_name = detail_index_segments.rdb$index_name 
    JOIN rdb$ref_constraints ON detail_relation_constraints.rdb$constraint_name = rdb$ref_constraints.rdb$constraint_name -- Master indeksas
    JOIN rdb$relation_constraints master_relation_constraints ON rdb$ref_constraints.rdb$const_name_uq = master_relation_constraints.rdb$constraint_name
    JOIN rdb$index_segments master_index_segments ON master_relation_constraints.rdb$index_name = master_index_segments.rdb$index_name 

WHERE
    detail_relation_constraints.rdb$constraint_type = 'FOREIGN KEY'
    AND detail_relation_constraints.rdb$relation_name = :table_name
Run Code Online (Sandbox Code Playgroud)