CreateClassificators = ""
.." CREATE TABLE IF NOT EXISTS CLASSIFICATORS ("
.." [CL_ID] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,"
.." [CL_NAME] TEXT, "
.." [CL_FOREIGN_OWNER] INTEGER);",
CreateTrees = ""
.." CREATE TABLE IF NOT EXISTS TREES ("
.." [TREE_ID] INTEGER NOT NULL PRIMARY KEY ON CONFLICT ROLLBACK AUTOINCREMENT CONSTRAINT [PART] UNIQUE ON CONFLICT ROLLBACK, "
.." [CL_ID] INTEGER CONSTRAINT [FK_TREES_REFERENCE_CLASSIFICATORS] REFERENCES [CLASSIFICATORS]([CL_ID]) ON DELETE CASCADE ON UPDATE CASCADE,"
.." [PARENT_TREE_ID] INTEGER, "
.." [TREE_NAME] TEXT, "
.." [DATE_OF_CREATION] DATA, "
.." [EXTERNAL_ID] INTEGER, "
.." [TREE_CHANGEABLE] INTEGER, "
.." [SIGNATURE_STAMP] INTEGER, "
.." [TYPE_ID] INTEGER, "
.." [TREE_PROPERTIES_ID] INTEGER, "
.." [CLOSED] INTEGER);",
CreateAccords = ""
.." CREATE TABLE IF NOT EXISTS ACCORDS ("
.." [AC_ID] INTEGER NOT NULL PRIMARY KEY ON CONFLICT ROLLBACK AUTOINCREMENT, "
.." [DOC_ID] INTEGER NOT NULL CONSTRAINT [FK_ACCORDS_REFERENCE_DOCUMENTS] REFERENCES [DOCUMENTS]([DOC_ID]) ON DELETE CASCADE ON UPDATE CASCADE,"
.." [TREE_ID] INTEGER NOT NULL CONSTRAINT [FK_ACCORDS_REFERENCE_TREES] REFERENCES [TREES]([TREE_ID]) ON DELETE CASCADE ON UPDATE CASCADE);",
БД sqlite. При удалении элемента из родительской таблицы, не удаляются элементы из дочерних таблиц
Есть три таблицы связанные между собой, ниже скрипты создания этих таблиц (кусок скрипта в lua):
Код:
связана с дочерней TREES, через CL_ID
а TREES в свою очередь связана с дочерней ACCORD, через TREE_ID
добавляю в эти таблицы связанные элементы
удаляю элемент из CLASSIFICATOR двумя способами:
1) через выполнение запроса из скрипта Lua
DELETE FROM CLASSIFICATORS WHERE CL_ID = :CL_ID;
в резьтате удаляется элемент из таблицы CLASSIFICATOR, НО СВЯЗАННЫЕ С НИМ ЭЛЕМЕНТЫ ИЗ ДОЧЕРНИХ ТАБЛИЦ (TREES, ACCORDS)НЕ УДАЛЯЮТСЯ
2) через СУБД sqllite
в результате получаю ошибку: "foreign key mismatch"
Кто-нибудь сталкивался с этой проблемой? Подскажите, пожалуйста, решение.
Буду очень признателен...