Versionieren per SQL (mySQL)

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Registriert
15. Mai 2008
Beiträge
21.900
Reaktionspunkte
14
Punkte
0
ich habe im Primär-Index neben der ID auch eine Versionsnummern-Feld (sagen wir dazu 'Version'). Dies wird bei jeder Änderung inkrementiert (++Version). Wenn ich auf alle Zeilen mit der neusten (höchsten) Version zugreifen will, dann mach ich:

Rich (BBCode):
select * from t1 where (ID, Version) in (select ID, max(Version) from t1 group by ID)

Das funktioniert soweit. Meine Frage: geht es auch anders? eventuell kürzer?

Itari
 
Zuletzt bearbeitet:
Mit einem Trigger die Version in einer anderen Tabelle speichern und dann darüber zugreifen.
 
Code:
SELECT * FROM t1 WHERE Version = (SELECT MAX(Version) FROM t1);
Kommt darauf an ob die Version global oder lokal ist... sonst:
Code:
SELECT * FROM t1 GROUP BY id HAVING MAX(Version);
Den Rest macht dein pkey als unique constraint eh...
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat