doppelter Schlüssel?

Hi,
Ich bins mal wieder.
Ich habe ein problem mit einem insert.

FEHLER:  doppelter Schlüsselwert verletzt Unique-Constraint »PK_HISTORY«

Nur das ich den Schlüssel automatisch von PostgreSQL generieren lasse.
Das ist mein Insert:

INSERT INTO history ("domainName", "historyTimestamp", "historyType", "historyTypeValue", "historyServer") VALUES ('property-magazine.de' , '2010-03-23 11:38:21.284', 14, 140000.0 , 'http://www.google.com')

(nur als beispiel)

und das ist meine history Tabelle:

CREATE TABLE history
(
  "historyID" serial NOT NULL,
  "domainName" character varying NOT NULL,
  "historyTimestamp" timestamp without time zone NOT NULL,
  "historyType" smallint NOT NULL,
  "historyTypeValue" double precision,
  "historyServer" character varying,
  CONSTRAINT "PK_HISTORY" PRIMARY KEY ("historyID")
)
WITH (
  OIDS=FALSE
);

woran kann das liegen das er sagt das der Schlüssel schon vorhanden ist? In meiner Insert Anweisung weise ich ja keine Schlüssel zu.
Es sind rund 63Millionen Datensätze in der Tabelle, kann es sein das kein freier Schlüssel mehr gefunden wird? Eigentlich nicht oder?

Vielen dank schon mal
spinner0815

Vermutlich sind die bisherigen Datensätze MIT ID eingefügt worden, ohne Verwendung der Sequence, oder?

Falls ja: es gibt Funktionen zum setzen einer Sequence auf einen (neuen) Startwert. Setze diese Sequence also auf einen Wert der größer ist als max(historyID).


Andreas

super es geht ich danke dir für den tipp :slight_smile:
ne andere Möglichkeit gibt es nicht oder? Ich muss ja jetzt jedesmal den Schlüssel mit angeben:

nextval('sequence_history')

Nein, du kannst die Spalte auch weglassen oder default hinschreiben.

Guggst Du:

test=# create table spinner (id serial);
NOTICE:  CREATE TABLE will create implicit sequence "spinner_id_seq" for serial column "spinner.id"
CREATE TABLE
test=*# \d spinner
                         Table "public.spinner"
 Column |  Type   |                      Modifiers
--------+---------+------------------------------------------------------
 id     | integer | not null default nextval('spinner_id_seq'::regclass)

test=*#

Andreas