Vinzenz Mai: mySql-DB Positionskampf

Beitrag lesen

Hallo Gustl,

also ich komm nicht weiter. meine db hat bildinfos die ich nach WHERE jahr = ? ORDER BY pos (pos=smallint) ausgebe. pos ist pro jahr durchnummeriert, es gibt also pos 1 bei 2005, pos 1 bei 2006 etc.

jetzt müsste ich eine bildinfo von mir aus von pos 25 nach pos 5 umbenennen, alle bildinfos ab pos 6 müsste ich also um +1 erhöhen und neu durchzählen.

das scheint mir kompliziert und es klappt auch irgendwie nicht.

Wo ist das Problem? Wahrscheinlich in Deiner MySQL-Version, die Du uns einfach verschweigst. Das ganze ist in drei Schritten zu erledigen

  • Setze die Position von Pos 25 auf einen künstlichen Wert
      (eine UPDATE-Anweisung)
  • Erhöhe die Position von pos 24 bis pos 5 um 1
      (eine UPDATE-Anweisung)
  • Setze die Position vom künstlichen Wert auf pos 5
      (eine UPDATE-Anweisung)

Anmerkungen:
Kapsele den Vorgang in eine Transaktion.
Schreibe für den Vorgang eine Funktion (MySQL 5 und neuer).

Wo siehst Du etwas Kompliziertes? Was funktioniert nicht?

Freundliche Grüße

Vinzenz