MySql update zwei Tabellen auf einmal
Ich habe zwei Tabellen benötigen, müssen Sie die exakt gleichen Werte für Denormalisierung Zwecke.
Hier ist die Abfrage.
ersten Tabelle
UPDATE Table_One
SET win = win+1, streak = streak+1, score = score+200
WHERE userid = 1 AND lid = 1 LIMIT 1
zweiten Tabelle
UPDATE Table_Two
SET win = win+1, streak = streak+1, score = score+200
WHERE userid = 1 LIMIT 1
Wie man sehen kann der einzige Unterschied zwischen beiden Tabellen Ihren Namen und in der Tabelle zwei nicht das Feld lid
Eh, beide miteinander zu kombinieren updates nur eine?
InformationsquelleAutor user962449 | 2012-01-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte es möglich sein, mit einem multi-table-update, wie in der Dokumentation beschrieben.
http://dev.mysql.com/doc/refman/5.5/en/update.html
Hinweis: Multi-table doesn ' T support BESCHRÄNKEN, so könnte dies dazu führen, mehr Trauer, je nach den details.
Gespeicherte Prozeduren oder Transaktionen können eine schönere Lösung.
InformationsquelleAutor rrehbein
Wenn es eine eins-zu-eins oder eins zu viele relation von Table_One auf Table_Two, das funktionieren würde:
InformationsquelleAutor Atonewell
Sind Sie zwei separate Abfragen und so müssen als solche behandelt werden. Tut mir Leid das zu sagen, aber wenn Sie ein Update von zwei Tabellen mit identischen Daten, gibt es wahrscheinlich einen besseren Weg, um design Ihrer Datenbank. Denken Sie daran, Ihre Programmierung TROCKEN.
Bearbeiten: Sollte sich zurückziehen; Sie können es verwenden, für mehrere Tabellen, Sie können aber nicht
ORDER BY
oderLIMIT
.Wäre es nicht einfacher, um ein Feld der Tabelle, das macht die gleiche Arbeit, die standardmäßig
1
, aber dann setzen Sie auf0
wenn Sie brauchen, um "reset" der Tabelle.Bin auf diese bei der Suche nach einer ähnlichen Lösung. Diese Antwort ist falsch - und ist als solche gekennzeichnet durch den Autor. Sie sollten akzeptieren, eine bessere Antwort weiter unten.
Stolperte über dieses ich zu. Es ist zwar technisch machbar, ist es wahrscheinlich nicht eine gute Idee. Die Notwendigkeit, dies zu tun in der Regel zeigt ein gebrochen-design (dies kann bedeuten, eine Vielzahl von Fehlern, wie z.B. fehlende Abstraktionen). Thomas war ziemlich viel Recht mit TROCKEN hier.
InformationsquelleAutor Thomas Edwards
Wenn Sie join der Tabellen, dann könnten Sie eine Sicht erstellen, die zwei Tabellen, dann update über diese Ansicht. In deinem Beispiel sieht es aus wie userid sein könnte, einen passenden Schlüssel.
In die Erstellung der Ansicht, dass Sie müssten zu bleiben folgende Richtlinien.
InformationsquelleAutor James Bradbury