Received: from necker.ac-rouen.fr (smtp.ac-rouen.fr [194.167.110.3]) by postgresql.org (8.11.3/8.11.1) with ESMTP id f5JCmWa60791 for ; Tue, 19 Jun 2001 08:48:32 -0400 (EDT) (envelope-from david.bouriaud@ac-rouen.fr) Received: from ac-rouen.fr (localhost.localdomain [127.0.0.1]) by necker.ac-rouen.fr (8.11.0/8.11.0) with ESMTP id f5JCo6t18235 for ; Tue, 19 Jun 2001 14:50:06 +0200 Message-ID: <3B2F4A8E.B6E07DBB@ac-rouen.fr> Date: Tue, 19 Jun 2001 14:50:22 +0200 From: David BOURIAUD X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.14 i686) X-Accept-Language: fr, en MIME-Version: 1.0 To: "pgsql-sql@postgresql.org" Subject: Re: About primary keys. References: <20010619123625.F01A21A78@druid.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Archive-Number: 200106/288 X-Sequence-Number: 3551 "D'Arcy J.M. Cain" wrote: > > Thus spake David BOURIAUD > > Is there a way to get in system tables all the primary keys of a table ? > > Thanks by advance. > > 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' > > Caveat: Does not work for complex primary keys. Thanks, but that is my problem actually ! I've got few tables that have complex primary keys. I know that this shouldn't be, but I have to work with it (no choice, much pain !). Since I've got to write a php program that will have to work for both type of tables (many with simple keys, and few with complex ones), how can I have a same querry work with both ? -- David BOURIAUD ---------------------------------------------------------- In a world without walls or fences, what use do we have for windows or gates ? ---------------------------------------------------------- ICQ#102562021