Problem with sequence increment

From: Francisco Calderón <fjcalderon(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Problem with sequence increment
Date: 2012-01-25 14:12:05
Message-ID: CAFVakMosc3T5WmhQqwDLQEkPRhChA9KoOUVQKGUR-3xwXBVOSg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello,

I am having a situation with postgresql 8.3, i have two tables, ta and tb,
with a relation "one tb has many ta" and... well, i will let the SQL talk
for me ;)

-----------SQL-----------
CREATE TABLE tb
(
id serial NOT NULL,
descripcion character varying(200) NOT NULL,
CONSTRAINT tb_pkey PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
INSERT INTO tb (descripcion) values ('desc 1');
INSERT INTO tb (descripcion) values ('desc 2');
CREATE TABLE ta
(
id serial NOT NULL,
descripcion character varying(200),
tb_id integer default null,
CONSTRAINT ta_pkey PRIMARY KEY (id),
CONSTRAINT ta_tb_id FOREIGN KEY (tb_id)
REFERENCES tb (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (OIDS=FALSE);

When i make an insert like this:

INSERT INTO ta (descripcion, tb_id) values ('prueba', 0);

we can expect this error:

ERROR: insert or update on table "ta" violates foreign key constraint
"ta_tb_id"
DETAIL: Key (tb_id)=(0) is not present in table "tb".

and that is what i am getting but the unusual situation is the sequence
"ta_id_seq" is incrementing every time i get the "violates foreign key
constraint" error and i think this is not a good behavior, what do you
think?

Thanks in advance.
//
// Francisco J. Calderón S.
//

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Brice André 2012-01-25 14:31:04 Re: Problem with sequence increment
Previous Message Rob Sargentg 2012-01-22 21:42:51 Re: How to Return Table From Function