Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2015, 06:05   #1
taras-proger
Подтвердите свой е-майл
 
Регистрация: 12.11.2014
Сообщений: 470
По умолчанию Как сделать каскадное обновление и удаление записей?

Есть несколько пар подлежащих связыванию таблиц, в каждой есть главная и подчинённая, связь в каждой паре от главной к подчинённым должна быть один ко многим. Подчинённая таблица двух пар совпадает, но содержит два раздельных поля связи для связи с первичными ключами главных таблиц обеих этих пар. При изменении запросом UPDATE значения первичного ключа в любой строке любой главной таблице должно быть изменено и значение поля связи в подчинённой. При удалении связанной строки в главной таблице любой пары должны быть удалены все связанные с ней строки в подчинённой таблице, а если она является главной в другой паре, в которой эти строки тоже связаны, то должны и из той таблицы удалиться все строки, связанные с удаляемыми строками главной таблицы этой пары и так далее. Как это реализовать в MySQL?
taras-proger вне форума Ответить с цитированием
Старый 29.10.2015, 07:43   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не боишься, что удаление одной записи повлечет удаление всех записей из всех таблиц при таком способе организации связей? Теоретически через триггера и триггерную рекурсию. Но я бы не рискнул такую структуру делать, не правильная она
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.10.2015, 09:08   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Для удаления вроде вот это
http://www.mysqltutorial.org/mysql-on-delete-cascade/

А изменение первичного ключа в моем понимании несколько бессмыслено - что-то у вас не так с дизайном.

PS.
Сделайте баны по разделам...
waleri вне форума Ответить с цитированием
Старый 29.10.2015, 10:27   #4
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Так есть же поддержка всего этого http://dev.mysql.com/doc/refman/5.7/...eign-keys.html, в чем загвоздка?
come-on вне форума Ответить с цитированием
Старый 29.10.2015, 11:40   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я не правильно понял? По сути у ТС реализация многие-к-многим. И каскадное удаление?
Изображения
Тип файла: jpg Безымянный.JPG (9.7 Кб, 249 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
каскадное удаление hunter03 Помощь студентам 5 03.12.2011 18:21
Каскадное удаление записей safarov БД в Delphi 4 22.08.2010 14:00
Каскадное удаление записей Liones БД в Delphi 7 14.05.2009 08:04
каскадное удаление Skolot Microsoft Office Access 0 20.04.2009 11:12
Удаление, обновление записей из MySQL таблицы xDjarx БД в Delphi 2 14.05.2008 13:36