У меня есть список внешних ключей. Я хотел бы узнать таблицы, на которые указывают эти FK, и фактический ключ.Получение ссылочных таблиц в Postgres
У меня есть список FK как так:
columnName0, columnName1, columnName2
Иностранные ключевые ссылки
columnName0
ссылкиtable0.idTable0
columnName1
ссылкиtable1.idTable1
columnName2
ссылкиtable2.idTable2
Некоторые примеры таблиц:
Table0:
idTable0, PK
name
Table1:
idTable1, PK
age
Table2:
idTable2, PK
createdOn
Образец результата:
| column | referenced_column | referenced_table |
|-------------|-------------------|------------------|
| columnName0 | idTable0 | table0 |
| columnName1 | idTable1 | table1 |
| columnName2 | idTable2 | table2 |
Я пытаюсь перевести что-то, что я делаю в MySQL, как это:
SELECT DISTINCT
COLUMN_NAME AS column,
REFERENCED_COLUMN_NAME AS referenced_column,
REFERENCED_TABLE_NAME AS referenced_table
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
COLUMN_NAME IN (?);
я собираюсь должны использовать прямые запросы вверх (к сожалению, , никаких хранимых процедур).
PostgreSQL поддерживает представления информации схемы. –
@ MikeSherrill'CatRecall '- да, это так, см. [Список грантов и привилегий для материализованного представления в PostgreSQL] (http://stackoverflow.com/a/38854833/1995738) – klin