Страница 1 из 1

SQL запросы

СообщениеДобавлено: 17 янв 2018, 10:07
denprox
Доброго времени суток! Столкнулся с проблемой при каскадном удалении данных их таблиц. Т.е. к примеру есть 2+ таблицы, которые между собой связаны (1 ко многим, с каскадным удалением и обновлением). Для редактирования БД использую SQLiteStudio. Если вручную удалять связанные данные, то все работает правильно, но если из под Unity выполнить запрос "DELETE FROM tablename WHERE id=11", то запись удаляет только из таблицы tablename а в других связанны таблицах, данные остаются.

Решается ли данная проблема ? Кроме как вручную удалять записи из всех таблиц ...

Re: SQL запросы

СообщениеДобавлено: 17 янв 2018, 12:15
denprox
Решение найдено! Суть в том, что перед запросом DELETE нужно добавить строчку "PRAGMA foreign_keys = ON;". Т.е. полностью запрос должен быть такой: "PRAGMA foreign_keys = ON; DELETE FROM tableName WHERE id=11"
Для Update по всей видимости тоже самое.

p.s. возможно строчку PRAGMA foreign_keys = ON; можно отправить и после подключения к БД, чтобы не дописывать во всех запросах - но это не точно.