2016-05-30 7 views
0

Ich habe bereits meine Forex-Schlüssel und so weiter. Ich muss nur die ON DELETE CASCADE Option hinzufügen. Wie kann ich das machen? Etwas mit Alter Tabelle? Ich benutze mysql mit phpmyadminWie kann ich eine "ON DELETE CASCADE" hinzufügen

+0

Mögliche Duplikate von [Wie fügt man 'ON DELETE CASCADE' in ALTER TABLE-Anweisung] (http://stackoverflow.com/questions/1571581/how-to-add-on-delete-cascade-in-alter-table -Erklärung) – dan08

Antwort

0

Leider können Sie Constraints nur mit alter table erstellen und löschen, Sie können eine bestehende nicht ändern. Es gibt auch keinen separaten alter constraint-Befehl. Daher können Sie nur den Fremdschlüssel löschen und neu erstellen, indem Sie die Klausel on delete cascade hinzufügen.

0

Der einfachste Weg wäre die aktuelle Einschränkung zu löschen und neue mit ON DELETE

löschen hinzufügen: ALTER TABLE mytable DROP FOREIGN KEY 'fk_anothertable'

Dann erstellen Sie es erneut:

ALTER TABLE mytable 
    ADD CONSTRAINT 'fk_anothertable' 
    FOREIGN KEY ('aColumn') 
    REFERENCES 'anotherTable' ('aColumn') 
    ON DELETE CASCADE 
1

Ich weiß nicht, was Version von phpMyAdmin, die Sie verwenden, aber auf der Version 4.5.2, hier ist, wie es funktioniert, wenn Sie es tun möchten, ohne manuell die SQL-Abfrage schreiben:

  1. Tisch auswählen
  2. Zum Structure Registerkarte
  3. Zum Relation view „Unterregister“
  4. Definieren Sie Ihre Zwänge
  5. Speichern Sie Ihre Änderungen

Beachten Sie, dass dies nicht möglich ist, mit die MyISAM Speicher-Engine (scheint die Standard-auf meiner Installation zu sein) und Sie müssen die InnoDB eins auswählen:

  1. Wählen Sie Ihren Tisch
  2. Zum Operations Registerkarte
  3. ändern Storage Engine zu InnoDB
  4. Speichern

Für die älteren phpMyAdmin-Versionen, ich weiß, dass es etwas anders war, als die Relation view war zugänglich über einen Link unterhalb der Tabellenstruktur.

Verwandte Themen