Re: FK relationships - Mailing list pgsql-novice

From sarlav kumar
Subject Re: FK relationships
Date
Msg-id 20050112210117.44796.qmail@web51305.mail.yahoo.com
Whole thread Raw
In response to Re: FK relationships  (Michael Fuhr <mike@fuhr.org>)
Responses Re: FK relationships
List 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@fuhr.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

pgsql-novice by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: FK relationships
Next
From: Michael Fuhr
Date:
Subject: Re: FK relationships