У меня есть база данных в Qt.у него есть четыре таблицы: maingroup, subgroup, parts и position. Это моя база данных:
CREATE TABLE `maingroup` (
`groupName`TEXT NOT NULL UNIQUE,
PRIMARY KEY(`groupName`)
);
CREATE TABLE `subgroup` (
`sub` TEXT NOT NULL UNIQUE,
`main` TEXT NOT NULL,
PRIMARY KEY(`sub`),
FOREIGN KEY(`main`) REFERENCES `maingroup`(`groupName`) ON DELETE CASCADE
);
CREATE TABLE `parts` (
`ID` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`Part_Number` TEXT,
`Type` TEXT NOT NULL,
`Value` TEXT,
`Voltage` TEXT,
`Quantity` TEXT,
`Position` TEXT,
`Picture` TEXT,
FOREIGN KEY(`Position`) REFERENCES `Position`(`Poistion`) ON DELETE CASCADE,
FOREIGN KEY(`Type`) REFERENCES `subgroup`(`sub`) ON DELETE CASCADE
);
Тип в частях таблицы - это внешний ключ, относящийся к столбцу sub из подгруппы таблицы.Основным в подгруппе таблицы является внешний ключ, относящийся к имени группы столбцов в таблице maingroup.моя проблема заключается в том, что когда я пытаюсь (delete from maingroup WHERE groupName= 'dd';
) в браузере БД он удаляет как родительский, так и дочерний.Но в QT эта команда (myQuery.exec("delete from maingroup WHERE groupName= 'dd'");
) просто удаляет родительское поле в таблице maingroup, а не дочерний элемент в таблице subgroup и part, а основной столбец в таблице subgroup ссылается на поле в таблице maingroup, которое не существует.что здесь не так? что мне делать?