Re: Using currval() in an insert statement...

From: "Shoaib Mir" <shoaibmir(at)gmail(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Using currval() in an insert statement...
Date: 2006-07-25 19:00:34
Message-ID: bf54be870607251200v5de1db1mfaa10ee4a9d68732@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Try it out the following way:

create table test (var1 int);

create sequence s1;

select s1.nextval;

insert into test values (s1.currval);

select * from test;

Thanks,

Shoaib Mir
EnterpriseDB (www.enterprisedb.com)

On 7/25/06, Redefined Horizons <redefined(dot)horizons(at)gmail(dot)com> wrote:
>
> I'm having trouble figuring out how to use the currval() function for
> sequences in an INSERT statement. I did some searching online, but
> couldn't find what I was looking for.
>
> I have two Schemas in my Database:
>
> metadata
> geometry
>
> I have a table named "metadata_geometries" in the metadata schema.
> I have a table named "geometry_polaris_numbers" in the geometry schema.
>
> Both tables have bigserial columns set up as primary keys.
>
> There is a one-to-one relationship between records in the
> metadata_geometries table and the geometry.polaris_numbers table.
>
> Here is what I'd like to do in my query:
>
> Insert a value into the "metadata.metadata_geometries" table.
>
> Select the value just inserted in to the primary key column,
> "pk_dbuid" of that table, and insert it into the
> "geometry.polaris_numbers" table in the "metadata" column.
>
> I had the query set up like this:
>
> INSERT INTO metadata.metadata_geometries (value)
> VALUES ('This is a test.');
>
> INSERT INTO geometry.polaris_numbers (pnuid, number_of_digits, error,
> value, metadata)
> VALUES (2305, 7, 1000000, 1000, currval(
> metadata.metadata_geometries.pk_dbuid);
>
> However, when I try and execute the query I get the following error
> message:
>
> ERROR: Missing FROM-clause for table "metadata_geometries"
>
> I know it is the second INSERT statement in this query that is giving
> me problems, because the first statement executes by itself without a
> hitch.
>
> I think I have the syntax for the currval() call incorrect.
>
> Can anyone help me out with the correct syntax?
>
> Thanks,
>
> Scott Huey
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Golub 2006-07-25 19:09:31 Re: Mapping/DB Migration tool
Previous Message MC Moisei 2006-07-25 18:59:26 Mapping/DB Migration tool