PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Намерете посоченото име на таблица, като използвате име на таблица, поле и схема

Ако не ви е необходимо това да бъде преносимо към друга RDBMS, това е много по-бързо и по-лесно да използвате каталожните таблици в pg_catalog вместо стандартната информационна схема:

SELECT c.confrelid::regclass::text AS referenced_table
     , c.conname AS fk_name
     , pg_get_constraintdef(c.oid) AS fk_definition
FROM   pg_attribute a 
JOIN   pg_constraint c ON (c.conrelid, c.conkey[1]) = (a.attrelid, a.attnum)
WHERE  a.attrelid = '"Schema2"."TableB"'::regclass   -- table name
AND    a.attname  = 'A_Id'                           -- column name  
AND    c.contype  = 'f'
ORDER  BY conrelid::regclass::text, contype DESC;

Връща:

 referenced_table | fk_name  |  fk_definition
------------------+-------------------------+----------------------------------------------
 Schema1.TableA   | b1_fkey  | FOREIGN KEY ("B_id") REFERENCES "Schema1"."TableA"("A_id")

Бележки

  • Допълнителните две колони са само за ориентация. Според вашия Q, имате нужда само от първата колона.

  • Това връща всички реферирани таблици от всички външни ключове, включващи даденото име на колона - включително FK ограничения за множество колони.

  • Името автоматично се квалифицира за схема или не според видимостта, зададена от текущия search_path . Името също се екранира, където е необходимо (незаконни или главни букви, запазени думи, ...) също автоматично.

Вижте подробности за pg_constraint и pg_attribute в ръководството. И повече за типовете идентификатори на обекти.

Свързано:

  • Ограничение за изпускане на PostgreSQL с неизвестно име
  • Извличане на всички PK и FK



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върна jsonb масив и масив от обекти от моите данни?

  2. PostgreSQL:Защо psql не може да се свърже със сървъра?

  3. Постепенно архивиране на PostgreSQL и възстановяване в момента

  4. Как да се свържете с отдалечена база данни PostgreSQL чрез SSL с Python

  5. Какъв е максималният брой колони в заявка за избор на PostgreSQL