Re: [HACKERS] Finding primary keys in a table

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: darcy(at)druid(dot)net (D'Arcy J(dot)M(dot) Cain)
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Finding primary keys in a table
Date: 1998-07-20 15:44:50
Message-ID: 199807201544.LAA02008@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> I am trying to finish off my Python interface with some extra helper
> functions and I need to find the primary key in a table if it exists.
> I have two questions.
>
> Although I can't imagine doing so, will the system allow you to create
> more than one primary key on a table? I just need to know whether I
> ned to test for multiple keys.
>
> Can someone suggest a SQL statement to pull out the primary key(s) from
> a table?
>
> Also, if multiple keys are allowed, what are people's opinions about
> using them? Basically I am creating a get function that is defined as:
>
> def db_get(db, cl, arg, keyname = None):
>
> where db is the database handle, cl is the class, arg is either a value
> to lookup or a dictionary containing the value and keyname is the
> field to lookup which defaults to the primary key. The question is,
> what do I do if keyname is omitted (defaults to primary) and there
> are two primary keys. Should I just use the first one or should I
> raise an exception. I favour the latter.

Because we just create a unique index on a PRIMARY specification, I
think any unique index on a field shows it as primary.

--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1998-07-20 17:02:35 exec_tlist_length
Previous Message Gene Selkov, Jr. 1998-07-20 14:51:05 Re: [GENERAL] Recalling previous commands at the PSQL prompt