Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Внешние ключи таблицы / 5 сообщений из 5, страница 1 из 1
08.04.2008, 17:39
    #35243386
Sherlock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешние ключи таблицы
Доброе время суток. Заранее прошу прощения, если я повторяю то, что уже обсуждалось - в поиске я не нашёл нужную мне информацию. Скажите мне, пожалуйста, - как в PostgreSQL получить информацию о внешних ключах таблицы(на какие таблицы и столбцы они ссылаются)? Можно же это сделать в виде запроса как, например в SQL Server 2005? Просто мне надо будет из приложения на Java получить эту информацию и я думаю, что в коде мне придётся формировать запрос с именем интересующей меня таблицы, чтобы потом получить список всех таблиц и столбцов с которыми у данной есть связь... С PostgreSQL начал знакомиться только на прошлой неделе, поэтому не судите меня строго. Спасибо.
...
Рейтинг: 0 / 0
08.04.2008, 17:49
    #35243418
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешние ключи таблицы
SherlockДоброе время суток. Заранее прошу прощения, если я повторяю то, что уже обсуждалось - в поиске я не нашёл нужную мне информацию. Скажите мне, пожалуйста, - как в PostgreSQL получить информацию о внешних ключах таблицы(на какие таблицы и столбцы они ссылаются)? Можно же это сделать в виде запроса как, например в SQL Server 2005? Просто мне надо будет из приложения на Java получить эту информацию и я думаю, что в коде мне придётся формировать запрос с именем интересующей меня таблицы, чтобы потом получить список всех таблиц и столбцов с которыми у данной есть связь... С PostgreSQL начал знакомиться только на прошлой неделе, поэтому не судите меня строго. Спасибо.
Судить не будем, но к мануалам отошлём. :)
...
Рейтинг: 0 / 0
08.04.2008, 17:58
    #35243453
бухарь
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешние ключи таблицы
жестко отослали...


вот тут уже готовенькое http://www.alberton.info/postgresql_meta_info.html

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 SELECT  tc.table_name,
         kcu.column_name,
          tc.constraint_name,
          tc.constraint_type,
          ccu.table_name AS references_table,
          ccu.column_name AS references_field
     FROM information_schema.table_constraints tc
INNER JOIN information_schema.key_column_usage kcu
       ON tc.constraint_catalog = kcu.constraint_catalog
      AND tc.constraint_schema = kcu.constraint_schema
      AND tc.constraint_name = kcu.constraint_name
INNER JOIN information_schema.referential_constraints rc
       ON tc.constraint_catalog = rc.constraint_catalog
      AND tc.constraint_schema = rc.constraint_schema
      AND tc.constraint_name = rc.constraint_name
      AND  tc.constraint_type = 'FOREIGN KEY'
INNER JOIN information_schema.constraint_column_usage ccu
       ON rc.unique_constraint_catalog = ccu.constraint_catalog
      AND rc.unique_constraint_schema = ccu.constraint_schema
      AND rc.unique_constraint_name = ccu.constraint_name
...
Рейтинг: 0 / 0
08.04.2008, 18:30
    #35243549
Sherlock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешние ключи таблицы
Вопрос снят. Спасибо большое.
...
Рейтинг: 0 / 0
28.11.2008, 17:20
    #35682670
неадмин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Внешние ключи таблицы
Код бухаря на самом деле не отрабатывает, если внешние ключи не уникальны в пределах базы. Напоролся, когда пытался пересоздать с дефферабельностью, а ключи были созданы с именами по умолчанию типа "$1". Получается солидный набор записей (при 90 настоящих - выводится 2200 записей) - декартово произведение (или как-то так). Постгрес 7.4.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Внешние ключи таблицы / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]