Hi,

I have the following tables :
CREATE TABLE tournee (
       no_tournee SERIAL PRIMARY KEY);

CREATE TABLE fab_tournee (
       id SERIAL PRIMARY KEY,
       id_fab INTEGER REFERENCES fabrication ON DELETE CASCADE,
       no_tournee INTEGER REFERENCES tournee ON DELETE CASCADE);

When I insert a new record into 'fab_tournee' whereas the field
'no_tournee' doesnt exist in 'tournee', I have this message :

ERROR:  <unnamed> referential integrity violation - key referenced
from fab_tournee not found in tournee

but 'id' increments in 'fab_tournee'. 

Is it a normal behaviour ?

*************** LOG ******************************
piid=> select * from fab_tournee ;
 id | id_fab | no_tournee 
----+--------+------------
(0 lignes)

piid=> insert into fab_tournee (id_fab, no_tournee) values(2, 1);
ERROR:  <unnamed> referential integrity violation - key referenced from
fab_tour
nee not found in tournee
piid=> select * from tournee;
 no_tournee 
------------
(0 lignes)

piid=> insert into tournee values (1);
INSERT 17355 1
piid=> insert into fab_tournee (id_fab, no_tournee) values(2, 1);
INSERT 17356 1
piid=> select * from fab_tournee ;
 id | id_fab | no_tournee 
----+--------+------------
  2 |      2 |          1
(1 ligne)
**************************************




---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to