Как я могу удалить строки в основных, подробных таблицах? - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть 4 таблицы, которые предполагают: t1.id - это PK, а t2.id, t3.id, t4.id - FK, сейчас, как удалить конкретную строку (id) из всех таблиц?

Конечно, я искал, но не смог найти ответ, и я запутался !!!

Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Вы можете изменить чужое на t2, t3 и t4, чтобы иметь CASCADE DELETE.

Таким образом, когда строка удаляется в t1, она автоматически удаляет дочерние строки из t2, t3 и t4

Иногда вы не можете иметь или не хотите каскадировать, поэтому вам нужно сделать это вручную, как этот вопрос при каскадном удалении в таблице с двумя FK для одной таблицы

0 голосов
/ 29 ноября 2011
   delete from t2 where t2.Id = <id> 
   delete from t3 where t3.Id = <id>
   delete from t4 where t4.Id = <id> 
   delete from t1 where t1.Id = <id>

Не уверен, что я неправильно понял ваш вопрос.Но для удаления определенной строки из таблицы нужен только идентификатор этой строки.Кроме того, при удалении записей из реляционной схемы родительско-дочерних отношений необходимо убедиться, что запись из родительской таблицы удаляется только после удаления всех дочерних записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...