Problem:
Sie möchten einen Fremdschlüssel aus einer Tabelle in einer Datenbank löschen.
Beispiel:
Wir möchten den Fremdschlüssel namens fk_student_city_id
entfernen aus der Tabelle student
.
Lösung 1 (neue Tabelle):
ALTER TABLE student DROP CONSTRAINT fk_student_city_id;
Diskussion:
Um einen Fremdschlüssel aus einer Tabelle zu löschen, verwenden Sie ALTER TABLE
-Klausel mit dem Namen der Tabelle (in unserem Beispiel student
) gefolgt von der Klausel DROP CONSTRAINT
mit dem Namen der Fremdschlüsseleinschränkung. In unserem Beispiel lautet der Name dieser Einschränkung fk_student_city_id
.
Wenn die Einschränkung für den Fremdschlüssel von der Datenbank generiert wurde, finden Sie diesen Namen in der Datenbank. Jeder Datenbankserver hat jedoch eine andere Art, Beschränkungen zu benennen. In SQL Server können Sie dies überprüfen, indem Sie Daten aus sys.key_constraints
in der angegebenen Datenbank. In PostgreSQL wählen Sie den conname
aus Spalte aus pg_constraint
Tisch. Oracle speichert diese Daten in der Tabelle user_constraints, und MySQL ermöglicht es Ihnen, Namen von CONSTRAINT_NAME
abzurufen Spalte in information_schema.TABLE_CONSTRAINTS
.