Tabelle durchzählen lassen

Hallo,

ich habe eine Tabelle z.B. mit 1400 Datensätzen. Ein PK ist nicht vorhanden.
Die Datensätze sind also nicht “eindeutig”.
Ich habe aber ein bestehendes Feld id (integer).
In diesem Feld “id” muss jetzt jeder Datensatz eine fortlaufende Nummer von 1 - 1400
erhalten. Mit der Update Syntax komme ich nicht weiter, da kein Datensatz eindeutig ist. Wie könnte man es anders machen?

Gruß
Burkhard



test=# create table b (id int, value text);
CREATE TABLE
test=# copy b (value) from stdin;
Geben Sie die zu kopierenden Daten ein, gefolgt von einem Zeilenende.
Beenden Sie mit einem Backslash und einem Punkt alleine auf einer Zeile.
>> foo
>> bar
>> test
>> laber
>> suelze
>> \.

test=# create sequence s2;
CREATE SEQUENCE

test=# update b set id = nextval('s2');
UPDATE 5
test=# select * from b;
 id | value
----+--------
  1 | foo
  2 | bar
  3 | test
  4 | laber
  5 | suelze
(5 Zeilen)

Andreas

Danke Andreas,

damit komme ich weiter.

Gruß
Burkhard

Hallo!

Eventuell hülfe auch eine Windowing-Function mit rank() wenns dynamisch sein soll…


Gruß Uwe