eine andere Spiegelung machen Ich habe zwei Tabellen, die einen Benutzer und andere genannt Profile. Jede dieser Tabellen hat eine Spalte namens user_id. Was ich tun möchte, wenn ich einen neuen Benutzer in die Benutzertabelle einfüge, möchte ich automatisch ihre neue user_id in der Benutzertabelle in die Profiltabelle kopieren. Ich möchte die UPDATE-Klausel nicht verwenden, da ich sie dann jedes Mal aufrufen müsste, wenn ich einen neuen Benutzer hinzufüge. Ich dachte, dass Relationen erreichen würden, was ich versuche, also habe ich die user_id von Profilen auf die user_id von Benutzern verweisen lassen und sie wird immer noch nicht automatisch aktualisiert. Was soll ich machen? Und was ist der Sinn von Beziehungen in erster Linie, wenn sie Ihre Spalten nicht automatisch aktualisieren?Wie man eine Spalte in mysql
Antwort
Dies ist wahrscheinlich ein Konstruktionsfehler. Wenn Zeilen in diesen beiden Tabellen immer mit denselben IDs existieren, sollten sie wahrscheinlich eine einzelne Tabelle sein.
Der Fremdschlüssel Sie erstellt haben garantiert, dass jede Zeile die in profiles
existiert müssen die gleiche ID wie eine Zeile in users
haben. Diese Zeilen werden nicht erstellt. Das bedeutet nur, dass beim Versuch, eine Zeile mit einer ID zu erstellen, die nicht übereinstimmt, die Datenbank einen Fehler auslöst.
Das alles gesagt wird, ist es möglich, einen Auslöser zu erstellen zu tun, was Sie beschreiben:
CREATE TRIGGER user_insert_creates_profile
AFTER INSERT ON users
FOR EACH ROW
INSERT INTO profile (user_id) VALUES (NEW.user_id);
Aber es ist wahrscheinlich besser, Ihr Design zu überdenken, oder der Einsatz in der Anwendung zu tun. Trigger werden am besten vermieden.
Alles klar, danke! Ursprünglich wollte ich es zu einem einzigen Tisch machen, aber dann würde es so viele Spalten geben, die das Lesen in cmd erschweren würden. Ich nehme an, das ist kein großes Problem. –
- 1. Wie fügt man eine Spalte mit alter in mysql hinzu?
- 2. MySQL, wie man eine Spalte mit "-" in seinem Namen benutzt?
- 3. wie man eine Spalte löscht, wenn sie in mysql existiert?
- 4. Wie liest man eine "Blob" -Spalte in mysql
- 5. Wie erstellt man eine virtuelle Spalte mit MySQL SELECT?
- 6. PHP Wie man eine von mysql mit dynamischer Spalte anzeigt
- 7. Wie fügt man Werte in Auto-Identity-Spalte in MYSQL
- 8. Wie nehme ich eine bestimmte Zeichenfolge in der Spalte mysql?
- 9. Wie man eine Spalte in UITableView hinzufügt
- 10. Wie man eine Spalte in R
- 11. MySQL - Wie kann ich eine Spalte umbenennen?
- 12. MySQL, wie schnell eine Spalte und Update?
- 13. Wie Dezimalstellen in mysql Spalte
- 14. Auswahl Dynamisch eine Spalte in MySQL
- 15. Geschwindigkeit der mysql update/set-Anweisung. Multipliziert man eine Spalte
- 16. Mehrere Werte in eine Spalte einfügen mysql?
- 17. wählen Sie eine Spalte Wert in mysql
- 18. MySQL eine Spalte mit Leerzeichen
- 19. Wie überprüft man, ob eine Zeichenfolge eine Zeichenfolge in einer Spalte enthält? MySQL
- 20. Wie man eine Bestellspalte in MySQL repariert?
- 21. wie mysql Spalte symfony
- 22. Kann Mysql eine Spalte aufteilen?
- 23. Wie man eine Spalte in eine Tabelle in Pandas einfügt
- 24. Datenproblem in mysql für eine bestimmte Spalte
- 25. eine berechnete Spalte Wert Passing in MySQL
- 26. Wie iteriert man durch eine mysql-Abfrage in PHP
- 27. wie man in mysql
- 28. Zufallszahl in MySQL-Spalte
- 29. Wie ändere ich den Datentyp für eine Spalte in MySQL?
- 30. Wie eine Spalte aus einer Tabelle in MySQL
Sie können einen 'AFTER INSERT'-Trigger für die Tabelle' users 'verwenden, um ihn automatisch in die 'profiles'-Tabelle einzufügen. – Barmar
würden Sie in diesem Fall einen Trigger machen, um die andere entsprechende Zeile einzufügen. – Randy
Die Beziehungen zwischen Tabellen sind normalerweise nicht eins zu eins, automatische Updates wären daher nicht angemessen. Wie würde es auch wissen, was in die anderen Spalten eingefügt werden soll, wenn es automatisch eingefügt wird? – Barmar