MySQL löscht Fremdschlüssel
Der Fremdschlüssel ist der Schlüssel, der zwei oder mehr Tabellen miteinander verbindet und eine sinnvolle Verbindung zwischen ihnen herstellt.
Dieser Schlüssel bezieht sich auf den Primärschlüssel in der untergeordneten Tabelle und fungiert als Fremdschlüssel in der übergeordneten Tabelle. Sie wird oft als Referenzschlüsseleinschränkung bezeichnet.
Fremdschlüssel in MySQL löschen
Die gesammelte Tatsache über den Fremdschlüssel ist, dass es nicht mehr als einen Eintrag in der Tabelle geben kann, da er als Primärschlüssel fungiert, und der Datensatz bezüglich des Primärschlüssels eindeutig ist.
Der Fremdschlüssel ist eine Einschränkung, die den Benutzer daran hindert, die verknüpften Datensätze zwischen Tabellen direkt zu löschen, was dazu beiträgt, die Benutzeraktion zu verhindern und zur Datensicherheit führt.
Die Tabelle, in der sich der Fremdschlüssel befindet, wird als Kind
-Tabelle bezeichnet, und die Tabelle, aus der der Schlüssel stammt, wird als Eltern
-Tabelle bezeichnet. Das Konzept der Verknüpfung von Tabellen kommt nur in den relationalen Datenbankverwaltungssystemen vor.
Die Vorteile von Fremdschlüsseleinschränkungen in MySQL sind unten aufgeführt.
- Die Einschränkung erzwingt die referenzielle Integrität und damit die Konsistenz über die Tabellen hinweg.
- Die Verwendung von Einschränkungen wie
ON DELETE CASCADE
undON UPDATE CONSTRAINTS
hilft dabei, das konsistente Verhalten von Tabellen in der gesamten Datenbank aufrechtzuerhalten. - Es erhöht schließlich die Leistung, da das Beibehalten von Beschränkungen für miteinander verbundene Tabellen den Overhead des Erinnerns an die Tabellen verringert und verwendet wird, um die verknüpften Tabellen zu erkennen.
- Es erhöht die Leistung, indem es bessere Verknüpfungen durchführt und Ergebnisse schneller abruft, da die Tabellen bereits verknüpft sind.
- Wenn ein Datensatz in der übergeordneten Tabelle vor dem Fremdschlüssel gelöscht wird, schlägt die Abfrage fehl und lässt das Löschen der Datensätze nicht zu. Es zeigt die Verknüpfung zwischen Tabellen und fordert Sie auf, zuerst die Datensätze aus der untergeordneten Tabelle anstelle der übergeordneten Tabelle zu löschen.
Unten ist der Screenshot für dasselbe.
Um einen Fremdschlüssel zu löschen, sollte man zuerst Tabellen erstellen und Fremdschlüssel in den Tabellen generieren. Nachfolgend finden Sie den Befehl zum Erstellen der Fremdschlüsseleinschränkung in den definierten Tabellen.
create table student(id varchar(255), name varchar(255), dob date, deptId varchar(255), primary key(id));
create table department(dept_id varchar(255), id varchar(255), dept_name varchar(255), constraint fk_id foreign key(id) references student(id));
Zunächst erstellt die obige Abfrage zwei Tabellen: student
und department
. Die Tabelle hat die Form Eltern-Kind-Beziehung, wobei das Attribut id
in der Tabelle student
als Fremdschlüssel id
in der Tabelle department
fungiert.
Screenshots anbei:
Wenn Datensätze in die Tabelle eingefügt werden und versucht wird, den eingefügten Datensatz mit einer delete
-Anweisung zu manipulieren, wird der oben gezeigte Fehler angezeigt. Um das Füllproblem zu beheben, löschen Sie die Fremdschlüsseleinschränkung und führen Sie die Löschaktion aus.
Die Syntax zum Löschen der oben erstellten Einschränkung in MySQL lautet nun:
Alter table table_name drop constraint constraint_name;
Der obige Befehl verwendet den Befehl alter
, um das Tabellenschema zu ändern, und das Schlüsselwort drop
, um die auf das Schema angewendete Einschränkung zu löschen. Alter table
ist eine Datendefinitionssprache, die auch als DDL
-Befehl bekannt ist, und hilft beim Erstellen von Datenbank- und Tabellenschemata.
Alter table department drop constraint fk_id;
Der Screenshot der delete
-Anweisung, wenn die Fremdschlüsseleinschränkung entfernt wird, ist unten.
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn