Lässt sagen, ich muss zwei Tabellen erstellen, die beide aufeinander verweisen (sie benötigen Einschränkungen). Ist die einzige Möglichkeit, die Tabellen ohne die Einschränkungen zu erstellen und sie dann in einer separaten Anweisung hinzuzufügen? Ich erinnere mich, dass einige Orms das selbst lösen können, aber ist es möglich, dies nur mit SQL und in zwei Anweisungen zu tun?Wie verweisen Sie auf eine Tabelle, die noch nicht erstellt wurde?
0
A
Antwort
0
Sie sollten müssen die Tabellen zuerst ohne Fremdschlüssel erstellen und anhängen, nachdem beide Tabellen erstellt werden:
create table t1 (id int not null primary key, id2 int not null);
create table t2 (id int not null primary key, id1 int not null);
alter table t1 add foreign key (id2) references t2(id);
alter table t2 add foreign key (id1) references t1(id);
gute Nachricht: Ein Schema-Dump perfekt funktioniert (so
ist meine Datenbank):
mysqldump -u root so t1 t2 | mysql -u root so
Dies ergibt keine Fehler, da mysqldump
Inserts DISABLE KEYS
und ENABLE KEYS
an den richtigen Stellen.
Verwandte Themen
- 1. Wie hosten Sie eine App, die mit Polymer erstellt wurde?
- 2. So verweisen Sie auf die Fremdschlüsseltabelle, um auf eine andere Tabelle zu verweisen?
- 3. Wählen Sie eine ältere Abhängigkeit, die auf Teamcity erstellt wurde
- 4. Ng-init, wenn das Array noch nicht erstellt wurde
- 5. AOT-Abfrage kann auf eine TempDB-Tabelle als Datenquelle verweisen
- 6. "Workbench wurde noch nicht erstellt" Fehler in Eclipse-Plugin-Programmierung
- 7. Erstellt Ext.override() eine neue Funktion, wenn sie noch nicht existiert?
- 8. "Inhaltsansicht noch nicht erstellt" auf Android-Fragmenten
- 9. Codebehind kann nicht auf die Seitensteuerelemente verweisen
- 10. So filtern Sie eine optionale Tabelle, die von einem linken Join in slick erstellt wurde
- 11. Wie MSBuild auf die richtigen Baugruppen verweisen?
- 12. Ansicht, die zeigt, was noch nicht importiert wurde
- 13. Überprüfen Sie, ob die Datenbank auf Android erstellt wurde
- 14. Wie fügen Sie eine Kopfzeile in eine Datei ein, die mit Teradata Aster act erstellt wurde?
- 15. ASP.NET - Wie verweisen Sie auf eine Klasse, die nicht in app_code ist
- 16. Verweisen Sie die benutzerdefinierte Klasse auf MainActivity.java
- 17. Scala/Akka Wie verweisen Sie auf die empfangene Nachricht?
- 18. AnnotationConfigApplicationContext wurde noch nicht aktualisiert
- 19. So verweisen Sie auf eine Datenrahmenspalte, die in R
- 20. So ermitteln Sie, wie eine Baugruppe erstellt wurde
- 21. Das Modul wurde noch nicht kompiliert
- 22. Verweisen auf aktive Tabelle in VBA
- 23. Wie erstellt man eine externe Hive-Tabelle mit komplexen Datentypen, die auf die hbase-Tabelle zeigt?
- 24. Suchen Sie das Datum/die Uhrzeit, zu der die Spalte einer Tabelle erstellt wurde
- 25. Django pre_save signal: prüfen, ob die Instanz erstellt wurde nicht aktualisiert, existiert kwargs ['created'] (noch)?
- 26. ListFragment „content Ansicht noch nicht erstellt“ auf Rotate
- 27. Wie biete ich Nutzern an, ihre Domain auf ihre Account-Anwendungs-Subdomain zu verweisen, die über meine Anwendung erstellt wurde?
- 28. AngularJS - Wie kann man auf Elemente zugreifen, die noch nicht erstellt wurden?
- 29. Eine neue Tabelle in den DBContext einfügen, die mit CodeFirst erstellt wurde
- 30. Wie wurde Google.com erstellt?
Erstellen Sie zuerst beide Tabellen, dann ändern Sie sie, um 'FK 'hinzuzufügen, wie [SQL Fremdschlüssel zur vorhandenen Spalte hinzufügen] (http://stackoverflow.com/questions/10389477/sql-add-foreign-key-to-existing -column) – lad2025
Das bedeutet, dass es nicht möglich ist, Schemadumps zum Importieren von Schemas zu verwenden. – Euphorbium
In diesem Fall können Sie wahrscheinlich keinen Schema-Dump verwenden. –