Re: May I have an assistance on CREATE TABLE Command

From: "Bart Degryse" <Bart(dot)Degryse(at)indicator(dot)be>
To: "pgsql-sql" <pgsql-sql(at)postgresql(dot)org>, <jameskitambara(at)yahoo(dot)co(dot)uk>
Subject: Re: May I have an assistance on CREATE TABLE Command
Date: 2008-09-17 11:01:45
Message-ID: 48D0FFB9.A3DD.0030.0@indicator.be
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

The idea of id's is that they are meaningless, so saying "this row was supposed to be 33" is senseless.
If you want Dar es Salaam to be 33 because eg it's the postal code, then add a column postal_code to your region table
but keep the id to make the reference.

>>> James Kitambara <jameskitambara(at)yahoo(dot)co(dot)uk> 2008-09-17 11:13 >>>


Thank you !

But I think that there is a solution.

If it happens that you have the following data in your tables
REGION
--------------------------------------
region_id | region_name
--------------------------------------
11 | Dodoma
22 | Tabora
99 | Dar es Salaam THIS ROW WAS SUPPOSED TO BE: '33', 'Dar es Salaam'

DISTRICT
------------------------------------------------------------
dist_id | dist_name | region_id
------------------------------------------------------------
001 | Kongwa | 11
002 | Ilala | 99
003 | Temeke | 99
003 | Kinondoni | 99


For this UPDATE I wanted, when I change the region _id from '99' to '33' of the last ROW in REGION table AUTOMATICALLY to change the last three ROWS of the DISTRICT table which reference to '99', 'Dar es Salaam'.

If I do this, I will get the error message "You can not change region_id other tables are reference to it.

HOW CAN DO THIS? (AUTOMATIC UPDATE OF FOREIGN KEY)


-----------------------------------ORGINAL MESSAGE---------------------------------------

I think (one of) the point(s) of id fields is not to change them. You can update the region_name field (eg a correct a misspelling), but the id stays the same.
That way the district stays connected to the same region.

>>> James Kitambara <jameskitambara(at)yahoo(dot)co(dot)uk> 2008-09-17 8:50 >>>


Hello Mambers of PGSQL-SQL,

I have two tables namely:

REGION (region_id, region_name)
DISTRICT (dist_id, dist_name, region_id (FK))

I would like to have the CREATE TABLE Command which will create these tables in such a way that when REGION table is UPDATED automatical the FOREGN KEY in DISTRICT table is also updated.

I will appriciate for your assistance !

Regards

James Kitambara

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Seb 2008-09-17 13:20:58 Re: surrogate vs natural primary keys
Previous Message Richard Huxton 2008-09-17 09:18:44 Re: May I have an assistance on CREATE TABLE Command