"D'Arcy" "J.M." Cain wrote:
>Thus spake Marc Grimme
>> if I create a table like this:
>> CREATE TABLE test (
>> id decimal(3) primary key,
>> name varchar(32));
>>
>> how can I ask postgres which is the primary key from table test?
>
>SELECT pg_class.relname, pg_attribute.attname
> FROM pg_class, pg_attribute, pg_index
> WHERE pg_class.oid = pg_attribute.attrelid AND
> pg_class.oid = pg_index.indrelid AND
> pg_index.indkey[0] = pg_attribute.attnum AND
> pg_index.indisprimary = 't';
>
>That lists all the primary keys in your database. Add a "WHERE pg_class
>= 'test'" clause to get the specific table.
I tried this and got 0 rows. Every value of pg_index.indisprimary is
false, although I have nearly 100 tables created with primary keys.
(This is with 6.4.2)
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP key from public servers; key ID 32B8FAA1
========================================
"For the Lord himself shall descend from heaven with a
shout, with the voice of the archangel, and with the
trump of God; and the dead in Christ shall rise first;
Then we which are alive and remain shall be caught up
together with them in the clouds, to meet the Lord in
the air; and so shall we ever be with the Lord."
I Thessalonians 4:16,17