Например, у меня есть эти таблицы и данные:аннулирует значение столбцов удаленных строк
TABLE: logo_user
+----+---------+
| id | logo_id |
+----+---------+
| 1 | 1 |
| 2 | 2 |
+----+---------+
TABLE: logo
+----+
| id |
+----+
| 1 |
| 2 |
+----+
То, что я хочу, чтобы удалить каждые строки в таблице logo
, и свести на нет значения, что относится к нему. Пример:
TABLE: logo_user
+----+---------+
| id | logo_id |
+----+---------+
| 1 | NULL |
| 2 | NULL |
+----+---------+
TABLE: logo (now emptied)
- Я попытался с помощью
TRUNCATE ... CASCADE
, но он также удаляется каждые строки в таблицеlogo_user
. - Я также рассматриваю изменение ограничения внешнего ключа
logo_user
на каскад при удалении, но это слишком много работы. На самом деле у меня много таблиц со ссылкой на таблицуlogo
.
Использование FK с 'on delete set null 'является единственным« автоматическим »способом этого. Это будет намного меньше работы, а затем изменение каждого каждого заявления на удаление для обработки всех связанных таблиц. –