Странное поведение внешнего ключа в пустых таблицах в SQLite 3

У меня есть SQLite 3 со следующей настройкой (упрощенно):

create table Location(LocationId integer not null,
                      LocationCode text not null, 
                      primary key(LocationId),
                      unique(LocationCode));

На приведенную выше таблицу ссылается Департамент:

create table Department(DepartmentId integer not null,
                        LocationId integer not null,
                        DepartmentCode text not null,
                        primary key(LocationId, DepartmentCode),
                        foreign key(LocationId) references Location(LocationId));

На таблицу выше ссылается Child:

create table Event(EventId integer not null,
                   LocationId integer not null,
                   unique(LocationId, EventDate),
                   primary key(eventId),
                   foreign key(LocationId) references Location(LocationId));

Приведенная выше таблица ссылок на таблицу Расположение:

create table Parent(ParentId integer not null,
                    EmailAddress text not null,
                    primary key(ParentId),
                    unique(EmailAddress));

На таблицу выше ссылается таблица Child:

create table Child(ChildId integer not null,
                   ParentId integer not null,
                   ChildCode text not null,
                   DepartmentId integer not null,
                   primary key(ChildId, ParentId),
                   foreign key(ParentId) references Parent(ParentId),
                   foreign key(DepartmentId) references Department(DepartmentId));

Ребенок за столом - это яЯ пытаюсь удалить из.

На данный момент вся база данных пуста и имеет "pragma foreign_keys = ON ".

При тестировании скрипта для очистки базы данных я обнаружил ошибку при удалении из пустой таблицыChild наличие внешнего ключа к (также пустой) таблице.Parent

Когда я выдаю командуdelete from child (пока пусто), SQLite3 возвращается с сообщением об ошибке "несоответствие внешних ключей ".

Это важная часть скрипта удаления:

delete from Child;
delete from Parent;
delete from Event;
delete from Department;
delete from Location;

Я видел здесь несколько сообщений о временном отключении поддержки внешнего ключа, но это не имеет смысла для меня. Это делает ненужным весь процесс внедрения отношения внешнего ключа.

Ответы на вопрос(1)

Ваш ответ на вопрос