From: | "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com> |
---|---|
To: | Orion <lab(at)orangekids(dot)org> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: locating a primary key |
Date: | 2006-04-20 03:45:28 |
Message-ID: | 444703D8.1020200@commandprompt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Orion wrote:
> I'm trying to craft a query that will determine what column(s) belong
> to the primary key for a given table. This seems like the kind of
> thing that would very common for people to try to do but my query was
> rather ugly and not flexible since it does not work for an arbitrary
> number of columns in the primary key. This is all due to the use of
> the int2vect type on indkey which is undocumented and does not seem to
> work with normal array tools such as ANY and cant be cast to int2[].
>
> Please tell me there's an easier/better way to do this.
>
> SELECT attname
> FROM pg_index
> JOIN pg_class ON (indrelid = pg_class.oid)
> JOIN pg_attribute ON (attrelid = pg_class.oid)
> WHERE indisprimary IS TRUE
> AND (attnum = indkey[0] OR attnum = indkey[1] OR attnum = indkey[2])
> AND relname = '$table';
>
> Orion
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
select * from key_column_usage;
--
=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Harvey, Allan AC | 2006-04-20 03:56:04 | Re: deleting table content through command prompt |
Previous Message | Shoaib Mir | 2006-04-20 03:43:00 | problem while adding a column |