Re: FK relationships

From: sarlav kumar <sarlavk(at)yahoo(dot)com>
To: Michael Fuhr <mike(at)fuhr(dot)org>
Cc: pgsqlnovice <pgsql-novice(at)postgresql(dot)org>
Subject: Re: FK relationships
Date: 2005-01-12 21:01:17
Message-ID: 20050112210117.44796.qmail@web51305.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Hi,

Instead of dropping and recreating the FK, I tried to change the conname value pg_constraint table for a particular relation, and that works.

This is what I did:

update pg_constraint set conname='customer_facts_uid_fkey' where confrelid='customer'::regclass and conrelid='customer_facts'::regclass;

conrelid | conname
--------------------------+-------------------------
customer_identity | $1
customer_sec_info | $1
customerdata | customer_uid_fk
customer_facts | customer_facts_uid_fkey

Is this going to cause any trouble in future?

Thanks,
Saranya

Michael Fuhr <mike(at)fuhr(dot)org> wrote:
On Wed, Jan 12, 2005 at 12:07:16PM -0800, sarlav kumar wrote:

> $1 FOREIGN KEY (uid) REFERENCES customer(id) ON UPDATE NO ACTION ON DELETE NO ACTION
>
> Since $1 is not very clear about the FK relationship that exists
> between the tables, I would like to rename these, or be able to get
> the names of the colums that are FK on customer table.

The constraint description shows the columns: uid in the referencing
table and id in the referenced table. If you want to rename a
constraint, then use ALTER TABLE to drop it and add it back with a
meaningful name:

ALTER TABLE customer_facts DROP CONSTRAINT "$1";

ALTER TABLE customer_facts ADD CONSTRAINT customer_facts_uid_fkey
FOREIGN KEY (uid) REFERENCES customer(id);

See the ALTER TABLE documentation for more information. You might
want to make these changes inside a transaction to avoid race
conditions with other sessions.

In 8.0 a constraint's default name will be table_column_type, so
instead of $1 you'll get customerdata_uid_fkey, etc.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Michael Fuhr 2005-01-12 21:22:39 Re: FK relationships
Previous Message Michael Fuhr 2005-01-12 20:42:10 Re: FK relationships