Umstieg von MySQL auf PostgreSQL: auto increment...

Hallo,

ich habe bislang öfters MySQL für Projekte verwendet und möchte nun auf PostgreSQL umsteigen. Die erste kleine Schwierigkeit für mich ist ohne auto_increment eindeutige Datensatz-IDs bei den INSERTs zu benutzen. Wenn ich zuerst ein

SELECT max(ID) FROM testtabelle;

mache und eins dazu addiere, kann es ja sein, dass diese ID schon mal in Benutzung war, aber gelöscht wurde. Welche Möglichkeiten gibt es alles in PostgreSQL, eine eindeutige ID zu vergeben und welche ist am einfachsten und ressourcensparendsten umzusetzen?

Viele Grüße & danke euch schon mal!
Sebastian

Du suchst SERIAL bzw. BIGSERIAL,

test=# create table foo (id1 serial, id2 bigserial);
NOTICE:  CREATE TABLE will create implicit sequence "foo_id1_seq" for serial column "foo.id1"
NOTICE:  CREATE TABLE will create implicit sequence "foo_id2_seq" for serial column "foo.id2"
CREATE TABLE

Der Unterschied ist der Zahlenbereich, gemeinsam ist, daß das multiuser-sicher ist.
Verwendet werden dazu Sequencen:

http://www.postgresql.org/docs/8.1/interactive/sql-createsequence.html
http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html


Andreas

Andreas