Re: How to discover foreign keys (without pulling hair out)

Lists: pgsql-sql
From: "bob lapique" <lapique(at)chez(dot)com>
To: imorgan(at)webcon(dot)net
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: How to discover foreign keys (without pulling hair out)
Date: 2002-04-25 12:27:00
Message-ID: GV4IL0$C9D156E91C6CCD1198F670F63041C3D5@tiscali.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Hi,

I use pgAdminII on Windows. It connects to a PostgreSQL
on a Linux PC.
When you click on an existing table's icon, it shows you
a script that could have created it (it detects the
structure of the table by itself), including the foreign
keys.
That's an easy way. But maybe not very elegant...

-- Table: slip
CREATE TABLE "slip" (
"id_slip" int4 DEFAULT nextval
('"slip_id_slip_seq"'::text) NOT NULL,
"proprio" int4,
CONSTRAINT "slip_pkey" PRIMARY KEY ("id_slip"),
CONSTRAINT "slip_de" FOREIGN KEY ("proprio")
REFERENCES "maitre" ("maitre_id") ON DELETE NO ACTION ON
UPDATE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE
);
COMMENT ON TABLE "slip" IS 'les slobards en folie !';
-------------------
Vous aussi devenez le "Coup de coeur de Julie" et gagnez une Webcam
sur http://www.chez.com !
Chez.com vous invite dcouvrir l'univers passionnant des sites persos.


From: Ian Morgan <imorgan(at)webcon(dot)net>
To: bob lapique <lapique(at)chez(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: How to discover foreign keys (without pulling hair out)
Date: 2002-04-25 17:04:22
Message-ID: Pine.LNX.4.44.0204251254120.29984-100000@light.webcon.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On Thu, 25 Apr 2002, bob lapique wrote:

> I use pgAdminII on Windows. It connects to a PostgreSQL on a Linux PC.
> When you click on an existing table's icon, it shows you a script that
> could have created it (it detects the structure of the table by itself),
> including the foreign keys. That's an easy way. But maybe not very
> elegant...

I have in fact tried that very thing. pgAdminII has a Log View that is
supposed to show all the back-end SQL that it executes in order to show you
what it does. However, all it really does is retrieve the pg_triggers.tgargs
field, which is 6 fields separated by \0's, then it must parse it internally.

I'm looking for a way to parse 'one\000two\000three\000'::bytea into

foo1 | foo2 | foo3
------+------+-------
one | two | three

using only (Postgre)SQL, no external C functions or the like. Ideas? I'm
looking into PL/pgSQL as a solution, but haven't gotten very far yet.

Regards,
Ian Morgan
--
-------------------------------------------------------------------
Ian E. Morgan Vice President & C.O.O. Webcon, Inc.
imorgan(at)webcon(dot)net PGP: #2DA40D07 www.webcon.net
* Customized Linux network solutions for your business *
-------------------------------------------------------------------