SQL запросы

Общие вопросы о Unity3D

SQL запросы

Сообщение denprox 17 янв 2018, 10:07

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

Решается ли данная проблема ? Кроме как вручную удалять записи из всех таблиц ...
Аватара пользователя
denprox
UNIт
 
Сообщения: 107
Зарегистрирован: 25 май 2017, 09:06
  • Сайт

Re: SQL запросы

Сообщение denprox 17 янв 2018, 12:15

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

p.s. возможно строчку PRAGMA foreign_keys = ON; можно отправить и после подключения к БД, чтобы не дописывать во всех запросах - но это не точно.
Аватара пользователя
denprox
UNIт
 
Сообщения: 107
Зарегистрирован: 25 май 2017, 09:06
  • Сайт


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17