Insert rule and seqences - Mailing list pgsql-novice

From Bo Lorentsen
Subject Insert rule and seqences
Date
Msg-id 3B935DED.3DF47C00@netgroup.dk
Whole thread Raw
List pgsql-novice
Hi ...

I would be very happy if someone could please give me a hint on this subject, as PosgreSQL confuses me on this matter.

I have been trying to make a simple rule upon a insert statement to a table that refers to a sequence, but I keep getting this strange error every time i use this rule, saying :

    ERROR:  entity_seq.currval is not yet defined in this session

The idea is that I have two tables I like to bind on a insert to one of them, like this :

    CREATE SEQUENCE entity_seq;

    CREATE TABLE A (
        id        INTEGER DEFAULT nextval( 'entity_seq' ),
        name      TEXT
    );
 
    CREATE TABLE B (
        name     TEXT,
        a_ref    INTEGER NOT NULL     -- REFERENCES A( id )
    );

    CREATE RULE insert_on_a
    AS ON INSERT
    TO A (
        INSERT INTO B name, a_ref VALUES( name, currval( 'entity_seq' ));
    );

Is this all wrong, or is the another way to get the new 'id' value from the A table ?

Im looking forward to be enlightened :-)

/BL

 

pgsql-novice by date:

Previous
From: "Mark Tessier and Martine Veilleux"
Date:
Subject: installing postgres on SunOS 5.7 as non-priviledged user
Next
From: Jochem van Dieten
Date:
Subject: Re: Insert rule and seqences