Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
#1

SQLite запретить удаление строки, если есть ссылки на нее - Программирование Android

04.10.2015, 06:13. Просмотров 262. Ответов 6
Метки нет (Все метки)

Здравствуйте!

Как создать таблицы, чтобы при попытке удаления строк в одной из них операция проваливалась, если на нее есть ссылка из строки другой таблицы? Чтобы не получилось так, что строка удалилась, а строки из другой таблицы ссылались на уже не существующий ID. Это возможно, вообще? Надеюсь понятно объяснил суть проблемы?.
Заранее спасибо за пример!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2015, 06:13     SQLite запретить удаление строки, если есть ссылки на нее
Посмотрите здесь:
Android Удаление строки из БД Sqlite
Android SQLite, удалить все ссылки (constraints)
Android Как узнать есть ли фронтальная камера на устройстве и если есть, то использовать ее?
SQLite добавление строки Android
Android Обновление строки в sqlite
SQLite вывод максимального значения строки Android
Android Sqlite запрос со сравнением строки с последними 5ю символами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
04.10.2015, 14:46     SQLite запретить удаление строки, если есть ссылки на нее #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
contedevel, можно. Нужно включить каскадность данных.
Java
1
2
3
4
5
6
7
8
@Override
public void onOpen(SQLiteDatabase db) {
    super.onOpen(db);
    if (!db.isReadOnly()) {
        // Enable foreign key constraints
        db.execSQL("PRAGMA foreign_keys=ON;");
    }
}
и при создании описывать связи ON DELETE CASCADE

http://stackoverflow.com/a/3266882/1600206
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
04.10.2015, 14:49  [ТС]     SQLite запретить удаление строки, если есть ссылки на нее #3
Спасибо за подробный ответ!
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
04.10.2015, 15:18     SQLite запретить удаление строки, если есть ссылки на нее #4
contedevel, не за что. Хотя я бы использовал ORM какую-нибудь, например, ORMLite. Тогда Вам не придётся беспокоиться об этом.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
04.10.2015, 19:22  [ТС]     SQLite запретить удаление строки, если есть ссылки на нее #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Хотя я бы использовал ORM какую-нибудь, например, ORMLite. Тогда Вам не придётся беспокоиться об этом.
Да, пользователи уже используют приложение с SQLite и код под нее уже весь написан, не хочется переделывать все) Просто в обнове структура немного усложнилась таблиц, вот и появилась необходимость перестраховаться от удаления элементов, находящихся в связи с другими
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
04.10.2015, 19:55     SQLite запретить удаление строки, если есть ссылки на нее #6
contedevel, можете также вручную проверять наличие связи, если она всего одна.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2015, 19:58     SQLite запретить удаление строки, если есть ссылки на нее
Еще ссылки по теме:
Android Как именно можно сделать SQLite запрос, если запрос уже сформирован?
Показывать изображения, если они есть в Кэше Android
Android Удаление строки в ListView
SQLite Android
Android SQLite

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
04.10.2015, 19:58  [ТС]     SQLite запретить удаление строки, если есть ссылки на нее #7
Цитата Сообщение от YuraAAA Посмотреть сообщение
можете также вручную проверять наличие связи, если она всего одна.
Пока так и работает, но связей много, сложно отследить все уязвимости
Yandex
Объявления
04.10.2015, 19:58     SQLite запретить удаление строки, если есть ссылки на нее
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru