Wie kann ich ON DELETE-Einschränkung für die Tabelle hinzufügen?Wie kann ich eine ON DELETE-Einschränkung für die Tabelle hinzufügen?
Antwort
Verwenden Sie ALTER TABLE + ADD CONSTRAINT. Z.B. wenn Sie Tabellen Mitglieder und Profilen verknüpfen wollen durch member_id und Kaskade löschen Profile jedes Mal das Element gelöscht wird, können Sie so etwas schreiben:
ALTER TABLE profiles
ADD CONSTRAINT `fk_test`
FOREIGN KEY (`member_id`)
REFERENCES `members` (`member_id`)
ON DELETE CASCADE
Wenn Sie diese Einschränkung aktualisieren müssen - Sie müssen entferne es dann bei der Erstellung, es gibt keinen direkten Weg, es zu ändern.
Wenn der Fremdschlüssel bereits erstellt wurde, gibt es einen Trick, der für mich funktioniert hat. Sie können den Speicherauszug Ihrer Datenbank ändern und mit den Änderungen erneut importieren.
Wenn Sie Mysql und Linux-Shell verwenden, würde es so aussehen:
Zuerst exportieren Sie Ihre Datenbank:
$ mysql -u <user> -p <namedatabase> > database.sql
Öffnen Sie dann die Datei database.sql und suchen Sie nach der Tabelle du willst ändern.
Fügen Sie am Ende des Fremdschlüsselsatzes ON DELETE CASCADE
hinzu und speichern Sie es.
Zweitens importieren Sie Ihre Datenbank mit den Änderungen:
$ mysql -u <user> -p <namedatabase> < database.sql
Und Sie müssen Ihre ON DELETE CASCADE arbeiten.
Dies ist eine wirklich gefährliche Lösung – CodeMonkey
Oder Sie können Fremdschlüsselprüfungen deaktivieren, ändern Sie Ihre Einschränkung und schalten Sie sie wieder ein, ohne den Overhead der Reimport der gesamten Datenbank. – mopsyd
- 1. Wie kann ich eine "ON DELETE CASCADE" hinzufügen
- 2. Wie kann ich eine Seriennummer für die folgende Abfrage hinzufügen
- 3. Wie kann ich meiner ggplot2-Ausgabe eine Tabelle hinzufügen?
- 4. Wie kann ich eine Spalte zu einer vorhandenen Tabelle hinzufügen?
- 5. Wie kann man die Tabelle JOIN optional hinzufügen?
- 6. Wie kann ich .on() loopen?
- 7. Wie kann ich den auto_increment Wert für eine Tabelle anzuzeigen
- 8. Wie kann ich eine zusätzliche Konfigurationsdatei für mysql (my.cnf) hinzufügen
- 9. Wie kann ich eine benutzerdefinierte Dropdown-Vorlage für Typeahead hinzufügen?
- 10. Wie kann ich eine Laufkonfiguration für Webpack in WebStorm hinzufügen?
- 11. Muss ich einen Index für eine mySQL-Tabelle hinzufügen, wenn die ID-Spalte der Primärschlüssel ist?
- 12. Wie ändere ich die Hintergrundauswahlfarbe für eine jface-Tabelle?
- 13. Wie kann ich die Tabelle Transponieren
- 14. Java - JPA: Wie kann ich eine Tabelle für jede Unterklasse, aber nicht für die Oberklasse erstellen?
- 15. SQL kann ich eine bedingte Eindeutigkeit für eine Tabelle haben?
- 16. Wie kann ich eine Suchleiste hinzufügen?
- 17. Wie kann eine Tabelle nur für schnelle Einfügungen optimiert werden?
- 18. SQL - Wie kann ich die zurückgegebene Tabelle verwenden und INNER JOIN und WHERE in MySQL hinzufügen?
- 19. Wie kann ich eine HTML-jQuery-Tabelle hinzufügen, um eine Datenbank anzuzeigen?
- 20. Wie kann ich die Gesamtsumme für eine Bestellung anzeigen?
- 21. Ruby on Rails Wie kann ich eine Validierungsfehlermeldung anzeigen?
- 22. Wie kann ich die ARP-Tabelle auf dem iPhone abfragen?
- 23. Wie kann ich eine Bestätigungsmail für die Benutzerregistrierung sichern?
- 24. Wie kann ich eine Anfrage in Ruby on Rails profilieren?
- 25. Wie kann ich eine Spalte einer Tabelle abzufragen, die ID einer anderen Tabelle entsprechen?
- 26. Wie kann ich eine übergeordnete Tabelle und eine untergeordnete Tabelle aus einer anderen Tabelle auffüllen?
- 27. haml Ruby on Rails, Link in Tabelle hinzufügen
- 28. Wie kann ich die Backand (back &) on demand Aktion sichern?
- 29. Wie kann ich einem Ressourcenwörterbuch eine Bindung hinzufügen?
- 30. Wie kann ich eine verwandte Tabelle einfügen/aktualisieren?
War nicht bewusst, dass Sie einen Fremdschlüssel nicht ändern konnten, aber Sie mussten ihn neu erstellen. Sparte mir eine Menge Zeit, danke! –
Benutzt dies auch für "auf UPDATE Kaskade" und funktionierte gut (ganz offensichtlich). Wird für ein umfangreiches Update für viele eingeschränkte Tabellen verwendet. – Diego1974