sql >> Database >  >> RDS >> PostgreSQL

Hoe krijg ik de primaire sleutel(s) van een tabel van Postgres via plpgsql?

De bovenstaande vraag is erg slecht omdat het erg traag is.

Ik zou deze officiële versie aanraden:

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

als schema nodig is, is de vraag als volgt

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. Vergelijk twee rijen en identificeer kolommen waarvan de waarden verschillend zijn

  2. Roep een opgeslagen procedure aan met een andere in Oracle

  3. Datums tussen een reeks datums ophalen

  4. Hoe te converteren naar hoofdletters in SQLite