Versionieren per SQL (mySQL)

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
3
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
0
Punkte
0
Mit einem Trigger die Version in einer anderen Tabelle speichern und dann darüber zugreifen.
 

enkidu

Benutzer
Mitglied seit
17. Dezember 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:
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten, denn dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit einem hohen technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive oder Themen fremde Werbung. Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.