sql >> Databáze >  >> RDS >> PostgreSQL

Jak získám primární klíč (klíče) tabulky z Postgres přes plpgsql?

Výše uvedený dotaz je velmi špatný, protože je opravdu pomalý.

Doporučil bych tuto oficiální verzi:

http://wiki.postgresql.org/wiki/Retrieve_primary_key_columns

pokud je potřeba schéma, dotaz je následující

SELECT               
  pg_attribute.attname, 
  format_type(pg_attribute.atttypid, pg_attribute.atttypmod) 
FROM pg_index, pg_class, pg_attribute, pg_namespace 
WHERE 
  pg_class.oid = 'foo'::regclass AND 
  indrelid = pg_class.oid AND 
  nspname = 'public' AND 
  pg_class.relnamespace = pg_namespace.oid AND 
  pg_attribute.attrelid = pg_class.oid AND 
  pg_attribute.attnum = any(pg_index.indkey)
 AND indisprimary


  1. SQL Server 2016

  2. Vypočítané / vypočítané / virtuální / odvozené sloupce v PostgreSQL

  3. Funkce PL/pgSQL:Jak vrátit normální tabulku s více sloupci pomocí příkazu execute

  4. Kontingenční tabulka a zřetězení sloupců