Достать Foreign Key из системных таблиц

arni
Дата: 20.09.2005 14:01:44
есть мастер-талица, на которую ссылаются три десятка других.
есть задача заменить один id на другой в поле связи для всех подчиненых таблиц.
Хотелось бы запросом опеределить перечень таблиц и полей, которые ссылаются на исходную таблицу
srf2000
Дата: 20.09.2005 14:07:43
arni
есть мастер-талица, на которую ссылаются три десятка других.
есть задача заменить один id на другой в поле связи для всех подчиненых таблиц.
Хотелось бы запросом опеределить перечень таблиц и полей, которые ссылаются на исходную таблицу


тынц
arni
Дата: 21.09.2005 13:42:04
Не доходит, как в эту конструкцию присовокупить имя столбца в detail-таблице
select i.RDB$INDEX_NAME what_index,
       i.RDB$RELATION_NAME what_table,
       r.RDB$CONSTRAINT_NAME what_constraint,
       c.RDB$CONST_NAME_UQ refers_to_constraint

  from rdb$indices i,
       rdb$relation_constraints r,
       rdb$ref_constraints c

 where i.rdb$index_inactive = 0
   and r.RDB$INDEX_NAME = i.RDB$INDEX_NAME
   and r.RDB$CONSTRAINT_NAME = c.RDB$CONSTRAINT_NAME
   and c.RDB$CONST_NAME_UQ='PK_SP_MAT'
 order by 2
kdv
Дата: 21.09.2005 16:41:30
столбцов может быть и несколько.
собственно, столбцы находятся в rdb$index_segments
rdb$indices уже в запросе есть. Значит надо добавить таблицу rdb$index_segments ig, объединить ее с rdb$indices i по
i.rdb$index_name = ig.rdb$index_name
и в вывод добавить столбец ig.rdb$field_name.

если есть FK по двум и более столбцам, надо выводить ig.rdb$field_position, записи будут "дублироваться", соответственно по field_position надо сортировку добавить.

Сам осилишь?