Здравствуйте, помогите разобрать запрос, я в postgre и в БД новичок.
Мне нужно определить есть ли внешний ключ в выбранной таблице, если есть перейти по нему и изъять имена полей.
На сайте
http://citforum.ru/database/interbase/interbase_03.shtml нашел что-то подобное, но не могу разобрать запрос.
select rdb$relation_name , rdb$index_name from rdb$indices
where rdb$index_name
in (select rdb$foreign_key
from rdb$indices where rdb$index_name = "RDB$FOREIGN9");
Что подставлять вместо rdb$, что это вообще? Почему в кавычках пишется RDB$FOREIGN9, а не 'FOREIGN KEY' ?
У меня в БД следующие данные:
схема - archive
таблица - blocks_credits, в которой есть внешний ключ ссылающийся на таблицу access_users
Попытался сделать так, но выдает синтаксические ошибки. Как правильно составить запрос?
queryModel = new QSqlQueryModel;
queryModel->setQuery("SELECT relation_name , index_name "
"FROM indices WHERE index_name IN (SELECT foreign_key FROM indices "
"WHERE index_name = 'FOREIGN KEY');");
treeView->setModel(queryModel);
Экспериментировал с запросами, так вроде выводит имена всех внешних ключей в таблицах.
"SELECT constraint_name FROM information_schema.table_constraints WHERE constraint_type = 'FOREIGN KEY';";