Ответ 1
Как соответствующие документы говорят (в разделе 2. Включение поддержки внешних ключей):
Предполагая, что библиотека скомпилирована ограничения внешних ключей, это по-прежнему должны приложения во время выполнения, используя Команда PRAGMA foreign_keys. Для Пример:
sqlite> PRAGMA foreign_keys = ON;
Ограничения внешнего ключа отключены по умолчанию (для назад совместимость), поэтому необходимо включить отдельно для каждой базы данных соединение отдельно.
Вы использовали это PRAGMA
в соответствующем соединении? (Предполагая, как говорят документы, что sqlite скомпилирован соответствующим образом, а также версия с достаточно недавним выпуском, чтобы, конечно, обеспечить принудительное ограничение внешних ключей).