Re: copy from

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Adam Lang <aalang(at)rutgersinsurance(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: copy from
Date: 2000-08-15 18:00:40
Message-ID: Pine.BSF.4.10.10008151056120.86873-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


Sort of. You can give the field a default value of
nextval(<sequence>) which means that if you do not specify
the column in an insert, it automatically gets the default
value which should be the next value in the sequence.
Note, that not putting the column is different from inserting a
NULL into the field.

(Example:
sszabo=# create sequence xyzseq;
CREATE
sszabo=# create table xyzseqtest ( a int default nextval('xyzseq'), b
int);
CREATE
sszabo=# insert into xyzseqtest (b) values (2);
INSERT 172188 1
sszabo=# insert into xyzseqtest (b) values (3);
INSERT 172189 1
sszabo=# select * from xyzseqtest;
a | b
---+---
1 | 2
2 | 3
(2 rows)
)

There are issues about this dealing with rules and triggers where another
row may be inserted or the default may be evaluated a second time where
you want to get the value you just inserted back, but in general it works.

On Tue, 15 Aug 2000, Adam Lang wrote:

> Hmmm... well, I don't think I have an "explicit" nextval. I created the
> table and then I did a create sequence broker_id;
>
> Are you implying that I can set the field to automatically create a nextval?

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Stephan Szabo 2000-08-15 18:07:17 Re: PL/PGSQL Function problem.
Previous Message Madel, Kurt 2000-08-15 17:57:17 Use a rule or a transaction