I am a bit puzzed about Postgres' auto-incrementing.
Supposing I have the following table:
CREATE TABLE foo (
id serial primary key,
Then, I can do the following:
INSERT INTO foo VALUES ('Test');
INSERT INTO foo VALUES ('Test 2');
The id for each name inserted should be 1, 2, 3, and so on.
This works for me on small tables. However, earlier, I tried to insert
about 9000 records through a Perl script and Postgres kept complaining:
Cannot insert a duplicate key into unique index schedule_pkey
And therefore Postgres didn't insert all the values.
After searching around I fixed this by:
INSERT INTO foo VALUES (nextval('schedule_id_key'),'Name');
This fixed the problem.
Why does this happen on large tables? I am nervous now because I have used
the insert calls without a nextval for small tables and things worked
fine, but now I am worried....
Is there any other method for this?
pgsql-general by date
|Next:||From: btober||Date: 2003-07-30 02:35:00|
|Subject: Re: Does the block of code in a stored procedure execute as a transaction?|
|Previous:||From: Bruce Momjian||Date: 2003-07-30 01:20:48|
|Subject: Re: Using YY-MM-DD date input|