Wie in den Kommentaren erwähnt Sie Tabellen mit FK contraints zu anderen Tabellen fallen haben, zuerst, dann können Sie die Tabellen fallen wird, verbunden.
Beispiel:
User
id: 1
name: Mike
Address
id: 1
user_id: 1 (FK constraint to User.id table.column)
address_1: 555 Main Street
Dieser Aufbau ist ein 1: 1-Beziehung (more on data normalization), wo ein Benutzer Zeile eine Zeilenadresse verweisen kann, und weil die Adresszeile auf der Existenz des Benutzers Reihe abhängig ist, Wenn Sie versuchen, die Benutzerzeile zu entfernen, werden die von Ihnen erwähnten Fehler angezeigt.
Wenn Sie jedoch zuerst die Adresstabelle löschen, funktioniert alles wie erwartet, da die Benutzertabelle für keine andere Tabelle FK ist.
Sicherstellen referential integrity innerhalb Ihres Schemas stellt sicher, dass Sie nicht mit verwaisten Zeilen enden, die durch Ihre datengesteuerte Anwendung durchdringen.
Sie könnten auch die folgenden Befehle:
SET foreign_key_checks = 0;
# Do Stuff
SET foreign_key_checks = 1;
Aber ich würde gegen diese dringend raten, wie Sie die referentielle Integrität Ihrer Daten brechen könnte, und in einem echten Chaos enden. Ich habe jemanden in einer Unternehmensumgebung gesehen, und es hat Wochen gedauert, sie zu bereinigen. Wenn Sie dies jedoch tun STRIKT zu Testzwecken; wie Unit-Tests schreiben, oder nur zu lernen, und du hast nicht die Tabellen jedes Mal löschen möchten, können Sie dies tun:
# Because we remove the foreign key check, we can truncate in any order
SET foreign_key_checks = 0;
TRUNCATE TABLE user;
TRUNCATE TABLE address;
SET foreign_key_checks = 1;
Proper Schema-Design eine gute Grundlage für den Aufbau für Fremdschlüssel-Constraints geht entlang Weg mit jede datengesteuerte Anwendung. Es wird eine Weile dauern, bis man sich überlegt, wann man es verwenden soll und wie man Fremdschlüssel-Constraints konstruiert, aber mit der Zeit werden Sie anfangen zu verstehen. Ein guter Weg, um loszulegen, ist ein Open-Source-Projekt wie magento, wordpress oder vbulletin herunterladen und schauen Sie sich ihre Schemas. Sie können diese Schemas sogar unter Verwendung von MySQL workbench untersuchen und deren Entity-Relationship Diagrams (ERDs) anzeigen, die Links zwischen Tabellen visuell demonstrieren.
Warum "schreit" du nicht einfach? – zerkms
siehe zu Frage bearbeiten – user61629
Versuchen Sie, zuerst temp_workers zu löschen/abzuschneiden, da es die FK-Einschränkung auf temporäre Tabelle und dann temporäre Tabelle hat. –