Когато изпълнява \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