From: | Robert Edwards <bob(at)cs(dot)anu(dot)edu(dot)au> |
---|---|
To: | jameskitambara(at)yahoo(dot)co(dot)uk |
Cc: | pgsql-sql <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: May I have an assistance on CREATE TABLE Command |
Date: | 2008-09-17 23:28:16 |
Message-ID: | 48D19290.90305@cs.anu.edu.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
You could:
INSERT INTO REGION VALUES (33, 'New Dar');
UPDATE DISTRICT SET region_id = 33 WHERE region_id = 99;
DELETE FROM REGION WHERE region_id = 99;
UPDATE REGION SET region_name = 'Dar es Salaam' WHERE region_id = 33;
Of course, if there is no uniqueness constraint on region_name then
you can just put the final region_name in the INSERT and you won't need
to do the final UPDATE.
This won't break any Foreign Keys.
(been to Dodoma and Dar, but not Tabora - yet).
Cheers,
Bob Edwards.
James Kitambara wrote:
>
> 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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Midgley | 2008-09-18 04:10:28 | Re: surrogate vs natural primary keys |
Previous Message | Stephan Szabo | 2008-09-17 20:38:29 | Re: prepared query plan did not update |