FOREIGN KEY CASCADE CONTAINING NULL COLUMNS NOT CASCADING
---------------------------------------------------------

                 Key: CORE-4957
                 URL: http://tracker.firebirdsql.org/browse/CORE-4957
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 3.0 Beta 2
            Reporter: Tim Kelly


SQL> CREATE TABLE X (A INTEGER PRIMARY KEY, B INTEGER);
SQL> CREATE TABLE Y (A INTEGER PRIMARY KEY, B INTEGER);
SQL> ALTER TABLE X ADD UNIQUE(A,B);
SQL> ALTER TABLE Y ADD FOREIGN KEY (A,B) REFERENCES X(A,B) ON UPDATE CASCADE;
SQL> INSERT INTO X VALUES(1,NULL);
SQL> INSERT INTO Y VALUES(1,NULL);
SQL> UPDATE X SET B = 1 WHERE A = 1;
Statement failed, SQLSTATE = 23000
violation of FOREIGN KEY constraint "INTEG_3304" on table "Y"
-Foreign key references are present for the record
-Problematic key value is ("A" = 1, "B" = NULL)

Whereas:

SQL> CREATE TABLE X (A INTEGER PRIMARY KEY, B INTEGER);
SQL> CREATE TABLE Y (A INTEGER PRIMARY KEY, B INTEGER);
SQL> ALTER TABLE X ADD UNIQUE(A,B);
SQL> ALTER TABLE Y ADD FOREIGN KEY (A,B) REFERENCES X(A,B) ON UPDATE CASCADE;
SQL> INSERT INTO X VALUES(1,0);
SQL> INSERT INTO Y VALUES(1,0);
SQL> UPDATE X SET B = 1 WHERE A = 1;
SQL> SELECT * FROM X;

           A            B
============ ============
           1            1

SQL> SELECT * FROM Y;

           A            B
============ ============
           1            1


I can see how this problem probably originates:

I think that NULLS should not be cascaded to the FK if all the 


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to