Zum Beispiel habe ich diese Tabellen und Daten:Nullify Spaltenwerte der gelöschten Zeilen
TABLE: logo_user
+----+---------+
| id | logo_id |
+----+---------+
| 1 | 1 |
| 2 | 2 |
+----+---------+
TABLE: logo
+----+
| id |
+----+
| 1 |
| 2 |
+----+
Was ich will, ist, alle Zeilen in logo
Tabelle zu löschen, und die Werte zunichte machen, die sie sich bezieht. Beispiel:
TABLE: logo_user
+----+---------+
| id | logo_id |
+----+---------+
| 1 | NULL |
| 2 | NULL |
+----+---------+
TABLE: logo (now emptied)
- Ich versuchte
TRUNCATE ... CASCADE
verwenden, aber es gelöscht auch alle Zeilen in der Tabellelogo_user
. - Ich erwäge auch, die Fremdschlüssel-Einschränkung der
logo_user
zu kaskadieren auf löschen, aber es ist zu viel Arbeit. In Wirklichkeit habe ich viele Tabellen, die sich auflogo
Tabelle beziehen.
Die Verwendung eines FK mit 'on delete set null 'ist der einzige" automatische "Weg, dies zu tun. Es wird viel weniger Arbeit sein, als jede einzelne Löschanweisung zu ändern, um mit allen verwandten Tabellen umzugehen. –