|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2009, 21:10 | #1 |
Регистрация: 26.07.2009
Сообщений: 5
|
Удаление записей при внешнем ключе
Добрый день. Столкнулся с такой проблемой (пока теоритически).
Есть база данных с двумя таблицами. Эти таблицы связаны внешним ключом по одному полю. Теперь мне надо удалить несколько записей из родительской таблицы и, естественно, из дочерней все их подчиненные записи. Но важно при удалении дочерних записей не только их удалить, но и посчитать, сколько их было удалено. Вот и возникает проблема: удалил я записи из дочерней таблицы, посчитал, и пока добирался до удаления родительской записи - кто-то добавил новые дочерние записи. И при удалении родительской записи выйдет ошибка нарушения внешнего ключа. Как защититься от такой ситуации? Каскадное удаление - не решение, т.к. сильно опасно при ошибочной операции и не даст возможность посчитать кол-во удаленных дочерних записей. Заранее спасибо. |
26.07.2009, 22:21 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
ну и для общей картины нужно бы еще написать на чем шуршит ваша базенка
|
27.07.2009, 11:31 | #3 |
Регистрация: 26.07.2009
Сообщений: 5
|
База работает на пока MySQL. Но это не особо принципиально. В ближаешем будущем будет миграция на что-то другое (пока не ясно что)...
|
27.07.2009, 13:44 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
на Оракле можно c помощью неявного курсора так получить
Код:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Каскадное удаление записей | Liones | БД в Delphi | 7 | 14.05.2009 08:04 |
Удаление нескольких записей | Hobbit_88 | БД в Delphi | 5 | 23.04.2009 17:18 |
Удаление повторяющихся записей | gavrylyuk | Microsoft Office Excel | 3 | 28.06.2008 08:10 |
Удаление записей | Blackmore | БД в Delphi | 2 | 26.05.2008 08:18 |
Удаление записей | Arsgun | БД в Delphi | 7 | 09.07.2007 11:56 |