При выполнении \d+
для таблицы в Postgres он перечисляет схему таблицы вместе с индексами, а также другие таблицы, которые ссылаются на нее как на FK. Пример:
Table "public.foo_table"
Column | Type | Modifiers | Storage | Description
------------+------+---------------+----------+-------------
id | text | | extended |
foo | text | | extended |
bar | text | | extended |
Indexes:
"foo_table_id_idx" btree (id)
"foo_table_foobar_idx" btree (foo,bar)
Foreign-key constraints:
"foo_table_bar_fk" FOREIGN KEY (bar) REFERENCES public.bar_table(id)
Referenced by:
TABLE "public.bar_table" CONSTRAINT "bar_table_foo_fk" FOREIGN KEY (foo) REFERENCES public.foo_table(foo)
Has OIDs: no
Вы можете сделать что-то $dbh->statistics_info(...)
, чтобы получить информацию об индексе. Есть ли что-то подобное для получения информации FK (ссылки и ссылки)?
Похоже, мой следующий вариант — либо выполнить команду ->do()
, либо запросить системные таблицы.
foreign_key_info
, я проверю, как он используется, так как он принимает 6 аргументов (нечетные) - person vol7ron   schedule 16.04.2012