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?
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)