Subject: Re: concurent updates

From: [email-masked]
Date: Thu, 26 Jul 2001 11:24:05 -0400

Why do you need to change the value of the id field??  The id field shouldn't
have any meaning attached to it beyond the fact that it uniquely identifies a
row in the table, and of course its usage as a foreign key when it serves that
role.  If you just want to change what numbers get assigned, I think you can
update the SEQUENCE that table1 uses.

If you really need to do this, you might have better luck using a trigger to do
a cascading update from table1 to table2, and then ONLY issue the update to
table1, counting on the trigger to update table2.

"Steve SAUTETNER" <[email-masked]> on 07/26/2001
05:19:36 AM

To:   [email-masked]
cc:    (bcc: Wesley Sheldahl/Lex/Lexmark)
Subject:  [GENERAL] concurent updates

hi everybody !

I've got a little problem when updating a primary key in two table
where the primary key of the one is a foreign key from the second :

here are the 2 tables :

create table table1 (id int primary key, col1 int);
create table table2 (id int primary key references table1(id), col2 int);

and the 2 updates :

1) update table2 set id = 1001 where id = 1;
2) update table1 set id = 1001 where id = 1;

i can't execute them separately because of an integrity constraint
violation.
i've got the same error in a BEGIN / COMMIT block containing the updates.

Does any one see how two help me ?

thanks.

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [email-masked])

---

From: "Len Morgan" <[email-masked]>
Date: Thu, 26 Jul 2001 15:56:51 -0500

Unless you have over simplified your example, why do you have two tables?
Wouldn't:

create table table1 (id int primary key, col1 int, col2 int)

do the same thing in one table?  I would think that ANY schema that has two
tables with the SAME primary key can be resolved to one table without losing
anything.

len morgan

> TIP 1: subscribe and unsubscribe commands go to [email-masked]
>