Thread: Bug #458: serial data type problem

Bug #458: serial data type problem

From
pgsql-bugs@postgresql.org
Date:
Teoh Teik Liang (martin_teoh@hotmail.com) reports a bug with a severity of 4
The lower the number the more severe it is.

Short Description
serial data type problem

Long Description
I had created a table with 2 fields (transaction_code serial primary key) and (trans_desc varchar(20) not null).  I
foundthat when I insert a null value into a trans_desc field, the record is not added because of the field is not able
tokey in null value.  But the transaction_code already increase 1 for me.  So, if I add the another record, the
transaction_codewill skip 1 value.  How can I make the transaction_code not to increase if the record is not added into
thetable? 

Sample Code
CREATE TABLE TEST (
   TRANSACTION_CODE SERIAL PRIMARY KEY,
   TRANS_DESC VARCHAR(20) NOT NULL,
   PARTICULAR VARCHAR(30) NOT NULL
);

INSERT INTO TEST (PARTICULAR) VALUES ('TEST2');
*** CANNOT ADD RECORD BUT TRANSACTION_CODE INCREASED ALREADY. ***

INSERT INTO TEST (TRANS_DESC, PARTICULAR) VALUES ('TEST2', 'TEST PAR');

*** TRANSACTION_CODE WILL START FROM 2 ***


No file was uploaded with this report

Re: Bug #458: serial data type problem

From
Peter Eisentraut
Date:
pgsql-bugs@postgresql.org writes:

> How can I make the transaction_code not to increase if the record is
> not added into the table?

This is a question, not a bug report.

Sequences may contain holes.  If you don't want that you can't use
sequences.

--
Peter Eisentraut   peter_e@gmx.net   http://funkturm.homeip.net/~peter