|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.10.2015, 06:05 | #1 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Как сделать каскадное обновление и удаление записей?
Есть несколько пар подлежащих связыванию таблиц, в каждой есть главная и подчинённая, связь в каждой паре от главной к подчинённым должна быть один ко многим. Подчинённая таблица двух пар совпадает, но содержит два раздельных поля связи для связи с первичными ключами главных таблиц обеих этих пар. При изменении запросом UPDATE значения первичного ключа в любой строке любой главной таблице должно быть изменено и значение поля связи в подчинённой. При удалении связанной строки в главной таблице любой пары должны быть удалены все связанные с ней строки в подчинённой таблице, а если она является главной в другой паре, в которой эти строки тоже связаны, то должны и из той таблицы удалиться все строки, связанные с удаляемыми строками главной таблицы этой пары и так далее. Как это реализовать в MySQL?
|
29.10.2015, 07:43 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не боишься, что удаление одной записи повлечет удаление всех записей из всех таблиц при таком способе организации связей? Теоретически через триггера и триггерную рекурсию. Но я бы не рискнул такую структуру делать, не правильная она
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
29.10.2015, 09:08 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Для удаления вроде вот это
http://www.mysqltutorial.org/mysql-on-delete-cascade/ А изменение первичного ключа в моем понимании несколько бессмыслено - что-то у вас не так с дизайном. PS. Сделайте баны по разделам... |
29.10.2015, 10:27 | #4 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Так есть же поддержка всего этого http://dev.mysql.com/doc/refman/5.7/...eign-keys.html, в чем загвоздка?
|
29.10.2015, 11:40 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я не правильно понял? По сути у ТС реализация многие-к-многим. И каскадное удаление?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
каскадное удаление | 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 |