Вы можете использовать каскадное удаление здесь.Например, для TableC
можно использовать следующее определение:
CREATE TABLE TableC (
id INTEGER PRIMARY KEY AUTOINCREMENT,
column1 TEXT,
tb_bid INTEGER NOT NULL,
CONSTRAINT fk_b FOREIGN KEY (tb_bid) REFERENCES TableB (id) ON DELETE CASCADE
)
Цель ограничения в приведенном выше определении таблицы заключается в том, что он связывает столбец tb_bid
как внешний ключ, указывающий напервичный ключ id
столбец в TableB
.Это означает, что если родительская запись в TableB
будет удалена, SQLite будет каскадно удалять это удаление для всех дочерних записей в TableC
.
Вы можете определить свой TableB
следующим образом:
CREATE TABLE TableB (
id INTEGER PRIMARY KEY AUTOINCREMENT,
issues TEXT,
tb_aid INTEGER NOT NULL,
tb_cid INTEGER NOT NULL,
tb_did INTEGER NOT NULL,
tb_eid INTEGER NOT NULL,
CONSTRAINT fk_a FOREIGN KEY (tb_aid) REFERENCES TableA (id) ON DELETE CASCADE,
CONSTRAINT fk_c FOREIGN KEY (tb_cid) REFERENCES TableC (id) ON DELETE CASCADE,
CONSTRAINT fk_d FOREIGN KEY (tb_did) REFERENCES TableD (id) ON DELETE CASCADE,
CONSTRAINT fk_e FOREIGN KEY (tb_eid) REFERENCES TableE (id) ON DELETE CASCADE
)