do not work cascade deleting
----------------------------
Key: CORE-5322
URL: http://tracker.firebirdsql.org/browse/CORE-5322
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0.0
Environment: Windows 10 firebird WI-V3.0.0.32483
Reporter: Koltcov Viktor
Priority: Critical
Can't delete record with cascade foreign key, but it worked in firebird 2.5.2
when try to delete
DELETE FROM TABLE_A WHERE (ID = 1)
get error
The cursor identified in the UPDATE or DELETE statement is not positioned on a
row.
no current record for fetch operation.
At trigger 'CHECK_1'.
test DDL:
/******************************************************************************/
/*** Generated by IBExpert 2016.6.22.1 01.08.2016 9:58:18 ***/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'TEST.FDB '
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251 COLLATION WIN1251;
/******************************************************************************/
/*** Tables ***/
/******************************************************************************/
CREATE TABLE "TABLE_A" (
"ID" INTEGER NOT NULL,
"SOME_DATA" INTEGER
);
CREATE TABLE "TABLE_B" (
"ID" INTEGER NOT NULL,
"TABLE_A_ID" INTEGER,
"SOME_DATA" SMALLINT,
"PARENT_ID" SMALLINT
);
INSERT INTO "TABLE_A" ("ID", "SOME_DATA") VALUES (1, 10);
COMMIT WORK;
INSERT INTO "TABLE_B" ("ID", "TABLE_A_ID", "SOME_DATA", "PARENT_ID") VALUES (1,
1, 555, NULL);
INSERT INTO "TABLE_B" ("ID", "TABLE_A_ID", "SOME_DATA", "PARENT_ID") VALUES (2,
1, 222, 1);
COMMIT WORK;
/******************************************************************************/
/*** Primary keys ***/
/******************************************************************************/
ALTER TABLE "TABLE_A" ADD CONSTRAINT "PK_TABLE_A" PRIMARY KEY ("ID");
ALTER TABLE "TABLE_B" ADD CONSTRAINT "PK_TABLE_B" PRIMARY KEY ("ID");
/******************************************************************************/
/*** Foreign keys ***/
/******************************************************************************/
ALTER TABLE "TABLE_B" ADD CONSTRAINT "FK_TABLE_B_1" FOREIGN KEY ("TABLE_A_ID")
REFERENCES "TABLE_A" ("ID") ON DELETE CASCADE;
ALTER TABLE "TABLE_B" ADD CONSTRAINT "FK_TABLE_B_2" FOREIGN KEY ("PARENT_ID")
REFERENCES "TABLE_B" ("ID") ON DELETE CASCADE;
--
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