Обсуждение: new.oid not working inside rule [repost]
I am reposting this because I haven't gotten an answer... is anyone
successfully using new.oid within a rule to store the oid of an inserted
row into another table? (See below)
This is in 6.4.2-3.
thanks,
--Michael
Michael Olivier wrote:
>
> 2. How can I get the oid of a record being inserted? Using new.oid
> isn't getting it for me... the field in my changes table remains
> blank...
>
> create rule users_add_rule as on insert to users do
> insert into changes (table_name, change_time, ref_oid, type)
> values ('users', 'now', new.oid, 'insert');
>
> Getting some other field, like new.acctname, does work...
>
> Thanks,
> Michael
>
> I am reposting this because I haven't gotten an answer... is anyone
> successfully using new.oid within a rule to store the oid of an inserted
> row into another table? (See below)
>
> This is in 6.4.2-3.
It cannot work - sorry.
This is because of the way rules are executed. If you have a
rule on INSERT, this rules action is executed prior to the
INSERT itself and will do mainly the same scans to collect
the data that will be inserted (in the case of
INSERT...SELECT...). At this time, the OID's which will later
get assigned aren't known.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#========================================= wieck@debis.com (Jan Wieck) #