Anzahl der Datensätze bei UPDATE aktualisieren

CreativPur

Erfahrenes Mitglied
Hi,
ich habe folgendes Problem...

Ich habe eine SQL-Datenbank mit 10 Datensätzen.
In der Spalte ANZAHL wird automatisch bei jedem Eintrag per INSERT die Anzahl um eins (+1) höher gezählt.
Soweit alles ok...
Z.B.
Id. Anzahl. Name
1 1 Otto
2 2 Berta
3 3 Petra
4 4 Olaf
5 5 Markus
.
.
.
.
WICHTIG ist es für mich, das die Spalte ANZAHL immer fortlaufend ist.
Wenn ich allerdings einen Datensatz lösche, ist die Nummerierung in der Spalte Anzahl natürlich unterbrochen und somit nicht mehr fortlaufend.

Z.B.
Id. Anzahl. Name
1 1 Otto
2 2 Berta
4 4 Olaf
5 5 Markus

Wie kann ich durch ein UPDATE die spalte Anzahl wieder fortlaufend aktualisieren ?
 
SQL:
UPDATE my_table AS t1
SET t1.anzahl = (
  SELECT COUNT(*)
  FROM my_table AS t2
  WHERE t2.id <= t1.id
);
 
Eine durchnummerierte Spalte deutet meist auf eine Fehlkonstruktion in der Datenbank oder Programmierung hin.
 
Gott sei Dank war ich nicht der einzige mit dem Gedanken......

Mir wäre kein Anwendungsfall bekannt, bei welchem ich sowas "hartcodiert" in einer Basis-Tabelle bräuchte....

Ganz zu schweigen davon: Sortieren wir doch mal die Ausgabe nach "Name".......
 
Die Tabelle war nur ein Beispiel.
Ich benötige die lückenlose Zahlenfolge für einen Slider mit Referenzen.
Wenn Sie unterbrochen wird, spinnt der Slider.
 
???????
wieso dann nicht als Bestandteil einer Abfrage/View?

EDIT: In SQLite getestet
SQL:
SELECT
Name,
ROW_NUMBER() OVER(ORDER BY Name) AS RN
From person ORDER BY Name
 
Zuletzt bearbeitet:
Zurück