Warum fügen Sie nicht eine Seriennummer hinzu
Primärschlüsselspalte in die Tabelle?
ALTER TABLE login ADD column login_id serial;
ALTER TABLE login ADD CONSTRAINT login_pkey PRIMARY KEY(login_id);
Die erste Operation wird die Tabelle umschreiben und für einige Zeit sperren. Ich würde dann ausführen
VACCUM FULL ANALYZE login;
Minderwertige Alternativen:row_number()
wie von @Joachim
hervorgehoben . Für maximale Leistung können Sie OVER
belassen Klausel leer:
row_number() OVER () AS rn
Beiseite:Verwenden Sie den AS
Schlüsselwort für Spaltenaliase (während sie für Tabellenaliase nur Rauschen sind).
Oder Sie können den ctid
als Ersatz für einen Primärschlüssel des armen Mannes. Das wäre noch schneller :
Details:
In-Order-Sequenzerstellung
Beispiel auf dba.SE:
Reihennummerierung für mehrere Tabellen fortlaufend