Versionieren per SQL (mySQL)

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
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:

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
1
Punkte
84
Mit einem Trigger die Version in einer anderen Tabelle speichern und dann darüber zugreifen.
 

enkidu

Benutzer
Mitglied seit
17. Dez 2011
Beiträge
191
Punkte für Reaktionen
0
Punkte
0
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