postgres autoincrement nicht aktualisiert, auf explizite id-Einsätze

Ich habe folgende Tabelle in der postgres:

CREATE TABLE "test" (
    "id" serial NOT NULL PRIMARY KEY,
    "value" text
)

Mache ich folgende Einfügungen:

insert into test (id, value) values (1, 'alpha')
insert into test (id, value) values (2, 'beta')

insert into test (value) values ('gamma')

In den ersten 2 Einsätzen bin ich ausdrücklich erwähnen, die id. Aber die Tabelle ist auto increment Zeiger ist in diesem Fall nicht fortgeschrieben. Also in der 3. einfügen bekomme ich die Fehlermeldung:

ERROR:  duplicate key value violates unique constraint "test_pkey"
DETAIL:  Key (id)=(1) already exists.

Ich nie vor dieses problem in Mysql in beide MyISAM-und INNODB-Motoren. Ausdrücklich oder nicht, mysql update immer autoincrement-pointer basierend auf der maximalen Zeilen-id.

Was ist die Problemumgehung für dieses problem in postgres? Ich brauche es, weil ich will eine strengere Kontrolle für einige ids in meiner Tabelle.

UPDATE:
Ich brauche es, weil einige Werte zu haben brauche ich eine Feste id. Für neue Einträge, die ich nicht Verstand neue zu erstellen.

Denke ich, kann es möglich sein, durch manuelles Inkrementieren der nextval Zeiger auf max(id) + 1 immer, wenn ich explizit einfügen der ids. Aber ich bin nicht sicher, wie das zu tun.

InformationsquelleAutor jerrymouse | 2012-02-02
Schreibe einen Kommentar