73 / 73 / 23
Регистрация: 07.11.2013
Сообщений: 539
|
||||||
1 | ||||||
Не работает ON DELETE CASCADE25.10.2014, 01:01. Показов 6030. Ответов 9
Метки нет (Все метки)
Есть такая таблица:
0
|
25.10.2014, 01:01 | |
Ответы с готовыми решениями:
9
БД аэропорта, где выбрать On Delete/Update Cascade/Restrict EF Cascade delete удаляет записи которые должны быть модифицированы Клавиша delete не работает,а вот shift + delete работает Стандартная функция delete в Eclipse работает а в AndroidStudio не работает |
73 / 73 / 23
Регистрация: 07.11.2013
Сообщений: 539
|
||||||||||||||||
28.10.2014, 18:25 [ТС] | 2 | |||||||||||||||
В общем, я разобрался.
1) Тип столбца-вторичного ключа должен полностью совпадать с типом столбца-первичного ключа, на который он ссылается. 2) Имена вышеназванных столбцов не должны совпадать (вроде как такого правила нет, но по другому у меня не работает ) При несоблюдении одного из вышеперечисленных пунктов, при создании таблицы будет возникать ошибка: Cannot add foreign key constraint А, да, и когда я пытался задать столбцу свойство "вторичный ключ" непосредственно при его создании, он не создавался вообще И ещё одно, желательно указывать одинаковые свойства DELETE и UPDATE, например:
Вот пример запроса для удаления таблицы questions:
Cannot delete or update a parent row: a foreign key constraint fails
0
|
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
|
|
28.10.2014, 18:41 | 3 |
"Это" называется внешним ключом. От англ. foreign key
Очень большая ошибка Не факт, только при наличии связанных записей
0
|
73 / 73 / 23
Регистрация: 07.11.2013
Сообщений: 539
|
|
28.10.2014, 18:45 [ТС] | 4 |
Я пытался удалить таблицу срезу после её создания (для эксперимента) и возникала эта ошибка
В чём именно? Ну, их вроде и так, и так называют. Но всё равно спасибо, учту =)
0
|
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
|
|
29.10.2014, 07:04 | 5 |
В том, что
Это, возможно, желательно делать в вашей реализации структуры БД, но не стоит писать абстрактно, что это желательно делать, а то кто-нибудь забьет себе это в голову. У нас был разработчик, который придерживался похожего принципа, одним незадокументированным действием пользователя потеряли половину БД, полдня дамп синхронизировали с текущим состоянием БД.
0
|
5 / 5 / 1
Регистрация: 08.05.2011
Сообщений: 121
|
||||||
24.05.2015, 13:19 | 6 | |||||
У меня такая же проблема. Удаляю строчку из таблицы(attributes), по внешнему ключу (поле attr_id) должно пройти удаление в двух таблицах - params,references. В итоге нигде ничего не удаляется.
Может ли проблема быть в именах ключей? Может их надо сделать с одинаковыми именами? Или проблема в том что висит ещё зависимость на таблицу objects? То есть строка в params не удалится пока любой из внешних ключей ссылается на существующую строку Описание таблиц и ключей: Кликните здесь для просмотра всего текста
0
|
73 / 73 / 23
Регистрация: 07.11.2013
Сообщений: 539
|
|
24.05.2015, 13:30 [ТС] | 7 |
vvApache, попробуйте переименовать столбцы на которые вы ссылаетесь. Т.е. чтобы названия связанного и основного (честно, я без понятия, как их повторно назвать) столбцов различались.
0
|
5 / 5 / 1
Регистрация: 08.05.2011
Сообщений: 121
|
|
24.05.2015, 14:16 | 8 |
спасибо, но если честно, не думаю что в этом проблема
если я их переименую то нарушу наглядность структуры бд
0
|
73 / 73 / 23
Регистрация: 07.11.2013
Сообщений: 539
|
|
24.05.2015, 14:31 [ТС] | 9 |
vvApache, да нет, просто переименуйте столбец-первичный ключ каждой таблицы на id
0
|
5 / 5 / 1
Регистрация: 08.05.2011
Сообщений: 121
|
||||||
25.05.2015, 20:28 | 10 | |||||
Экспериментально выяснил из-за чего не удаляет по констрейнтам:
Можно ли что-то с этим сделать, не убирая зависимостей?
0
|
25.05.2015, 20:28 | |
25.05.2015, 20:28 | |
Помогаю со студенческими работами здесь
10
Почему не работает Update, но работает аналогичный Delete? Не работает delete Table->Delete не работает Не работает триггер after delete Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |