![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
It looks to me a referential integrity problem (only?) within PLPGSQL. Plesase see the test result below. |
#3
| |||
| |||
|
|
There have been discussions in the past about when cascade events should occur. The code currently does what I believe was last agreed upon, although its behavior is fairly wierd for deferred constraints and functions. Right now the cascade happens at the end of the full statement (in this case the call to the function) which is why you get a key constraint error in the second call to f1 and why the later inserted row is removed in f2. |
#4
| |||
| |||
|
|
Thank you very much for your explanation! =A1=B0 Include=A1m"Stephan Szabo" <sszabo (AT) megazone (DOT) bigpanda.com>=A1n wrote: There have been discussions in the past about when cascade events should occur. The code currently does what I believe was last agreed upon, although its behavior is fairly wierd for deferred constraints and functions. Right now the cascade happens at the end of the full statement (in this case the call to the function) which is why you get a key constraint error in the second call to f1 and why the later inserted row is removed in f2. It sounds to me that the only solution to my case is executing DELETE FROM referenced_table and INSERT INTO referencing_table in seperate transactions. Please correct me if I am wrong. |
|
I also feel it might be a good idea to include an example like the one in my previous message in the documentation so that this question hopefully will not be asked repeatedly. |
![]() |
| Thread Tools | |
| Display Modes | |
| |