Heim  >  Artikel  >  Datenbank  >  Fehler beim Umbenennen von „table_name“ in „new_table_name“ (Fehlernummer: 150) – So beheben Sie den MySQL-Fehler: Fehler beim Umbenennen von „table_name“ in „new_table_name“, Fehlernummer: 150

Fehler beim Umbenennen von „table_name“ in „new_table_name“ (Fehlernummer: 150) – So beheben Sie den MySQL-Fehler: Fehler beim Umbenennen von „table_name“ in „new_table_name“, Fehlernummer: 150

WBOY
WBOYOriginal
2023-10-05 08:18:13839Durchsuche

Error on rename of 'table_name' to 'new_table_name' (errno: 150) - 如何解决MySQL报错:重命名'table_name'为'new_table_name'时出错,错误编号:150

So beheben Sie den MySQL-Fehler: Beim Umbenennen von „table_name“ in „new_table_name“ ist ein Fehler aufgetreten, Fehlernummer: 150, es sind spezifische Codebeispiele erforderlich

Bei der Verwendung einer MySQL-Datenbank treten häufig verschiedene Fehler auf. Einer der häufigsten Fehler ist das Umbenennen einer Datentabelle. Die MySQL-Datenbank gibt beim Durchführen einer Umbenennungsoperation die Fehlernummer 150 zurück. Dieser Fehler wird normalerweise durch Fremdschlüsseleinschränkungen verursacht.

Fremdschlüsseleinschränkungen sind ein Mechanismus, der verwendet wird, um die Korrelation zwischen Tabellen sicherzustellen. Wenn wir eine Tabelle umbenennen möchten und die Tabelle über eine Fremdschlüsselzuordnung verfügt, verhindert MySQL, dass wir sie direkt umbenennen. Stattdessen wird ein Fehler 150 gemeldet. Wie kann man dieses Problem lösen? Nachfolgend finden Sie einige spezifische Codebeispiele.

Erstellen wir zunächst zwei einfache Tabellen, um diesen Fehler zu veranschaulichen.

CREATE TABLE table1 (
   id INT PRIMARY KEY
);

CREATE TABLE table2 (
   id INT PRIMARY KEY,
   table1_id INT,
   FOREIGN KEY (table1_id) REFERENCES table1(id)
);

Im obigen Code haben wir zwei Tabellen erstellt, Tabelle1 und Tabelle2. Zwischen diesen beiden Tabellen besteht eine Fremdschlüsselzuordnung, und das Feld table1_id von Tabelle2 verweist auf das Feld id von Tabelle1.

Als nächstes versuchen wir, die Tabelle table1 umzubenennen:

RENAME TABLE table1 TO new_table1;

Wenn wir den obigen Code ausführen, gibt MySQL den Fehler 150 zurück. Da Tabelle2 von den Fremdschlüsseleinschränkungen von Tabelle1 abhängt, lässt MySQL keine direkte Umbenennung von Tabelle1 zu.

Wie kann man dieses Problem lösen? Es gibt zwei Möglichkeiten, diesen Fehler zu beheben.

Methode 1: Löschen Sie zuerst die Fremdschlüsseleinschränkung und benennen Sie sie dann um.

ALTER TABLE table2 DROP FOREIGN KEY table2_ibfk_1;
RENAME TABLE table1 TO new_table1;

Im obigen Code haben wir die Fremdschlüsseleinschränkungen der Tabelle table2 mithilfe der ALTER TABLE-Anweisung entfernt. Anschließend fahren wir mit der Umbenennung fort. Dieses Mal führt MySQL den Umbenennungsvorgang erfolgreich durch.

Methode 2: Verwenden Sie die ALTER TABLE-Anweisung, um den Tabellennamen und die Fremdschlüsseleinschränkungen gleichzeitig zu ändern.

ALTER TABLE table1 RENAME new_table1;
ALTER TABLE table2 DROP FOREIGN KEY table2_ibfk_1;
ALTER TABLE new_table1 ADD CONSTRAINT table2_fk FOREIGN KEY (id) REFERENCES table2(table1_id);

Im obigen Code verwenden wir zunächst die ALTER TABLE-Anweisung, um die Tabelle table1 in new_table1 umzubenennen. Dann haben wir die Fremdschlüsseleinschränkung der Tabelle table2 entfernt. Schließlich haben wir die Fremdschlüsseleinschränkungen mithilfe der ALTER TABLE-Anweisung erneut hinzugefügt, um sicherzustellen, dass die Fremdschlüsselzuordnung weiterhin besteht.

Durch die beiden oben genannten Methoden können wir das Problem des MySQL-Fehlers 150 erfolgreich lösen. Beachten Sie jedoch, dass Sie vor dem Umbenennen einer Tabelle sicherstellen müssen, dass keine anderen Tabellen von den Fremdschlüsseleinschränkungen der Tabelle abhängig sind. Andernfalls müssen wir zuerst die relevanten Fremdschlüsseleinschränkungen löschen und dann den Umbenennungsvorgang durchführen.

Kurz gesagt, Fehler sind bei der Verwendung einer MySQL-Datenbank unvermeidlich. Wenn ein Problem auftritt, das dem Fehler Nr. 150 ähnelt, können wir das Problem mit den oben genannten Lösungen lösen. Ich hoffe, dass die oben genannten spezifischen Codebeispiele Ihnen helfen können, den Fehler zu beheben, der auftritt, wenn MySQL die Tabelle umbenennt.

Das obige ist der detaillierte Inhalt vonFehler beim Umbenennen von „table_name“ in „new_table_name“ (Fehlernummer: 150) – So beheben Sie den MySQL-Fehler: Fehler beim Umbenennen von „table_name“ in „new_table_name“, Fehlernummer: 150. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn