On Mon, 26 Feb 2001, si wrote:
> Hi,
>
> I am new to postgresql, Please can you guide me:
>
> I have created a table and I would like all the entries to be indexed with a number when the data is entered into the
database,hence giving it a new id, every time some data is entered.
>
> e.g.
>
> I.D. | Name
> 1 | Jack
> 2 | Jill
>
>
> Does pgsql do this automatically? or do I have to create a seprate ID field like above, and check the database each
timethe data is entered and find out the highest number then increment it by 1 and then enter the data with the
incrementednumber.
Well, it's not automatic, per se. What you want is to create an id
field, and use a sequence for that id field. If you use the SERIAL data
type for the id column when you create the table, the sequence will be created for you.
When you insert data, either insert nothing into the id field ( like
INSERT INTO table(name) VALUES ('Jack'), which will cause the next
sequence value to be used. Otherwise, use the function
nextval('some_table_seq') where "some_table_seq" is the name of your id
sequence during insert (use \ds to view your sequences).
This is not automatically indexed unless you make it a primary key
during creation. See the PostgreSQL docs for more info.
Jeff
--
Errors have occurred.
We won't tell you where or why.
Lazy programmers.
-- Hacking haiku