On Sat, 31 Jan 2004, beyaRecords - The home Urban music wrote: > Hi, > could someone please explain to me the mechanics of an UpDate:Cascade? > Delete:Cascade I fully understand but not Update. I have 2 tables A and > B. On B I have created a foreign key on user_id in both B and A for > Update and Delete cascade. If I delete from A it deletes all from B. If > I update A what happens in B?
Basically it means that if you update the referenced key in A, the associated referencing values in B changes as well so as to attempt to keep the associations the same. Here's an example: sszabo=# create table a(a int primary key, b int); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "a_pkey" for table "a" CREATE TABLE sszabo=# create table b(a_key int references a on update cascade, b int); CREATE TABLE sszabo=# insert into a values (3, 4); INSERT 535937 1 sszabo=# insert into a values (4, 5); INSERT 535938 1 sszabo=# insert into b values (3,104); INSERT 535939 1 sszabo=# insert into b values (4,105); INSERT 535940 1 sszabo=# select * from a; a | b ---+--- 3 | 4 4 | 5 (2 rows) sszabo=# select * from b; a_key | b -------+----- 3 | 104 4 | 105 (2 rows) sszabo=# update a set a=a+100; UPDATE 2 sszabo=# select * from a; a | b -----+--- 103 | 4 104 | 5 (2 rows) sszabo=# select * from b; a_key | b -------+----- 103 | 104 104 | 105 (2 rows) ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster