Jie Liang wrote:
> e.g.
> Try:
>
> CREATE TABLE emp (
>     id int4 primary key,
>     empname text,
>     salary int4,
>     last_date datetime,
>     last_user name);
>
> CREATE FUNCTION emp_stamp () RETURNS OPAQUE AS
>     BEGIN
>    update emp set last_date=''now''::timestamp where id=NEW.id;
>         RETURN NEW;
>     END;
> ' LANGUAGE 'plpgsql';
>
> CREATE TRIGGER emp_stamp BEFORE UPDATE ON emp
>     FOR EACH ROW EXECUTE PROCEDURE emp_stamp();

    Not  sure  if it works this way at all, but the update on emp
    table is definitely a wasted scan. And  the  'now'::timestamp
    will  be  evaluated at the first function call - never again;
    not sure if he wanted that behaviour either.

        CREATE FUNCTION emp_stamp () RETURNS opaque AS '
        BEGIN
            new.last_date := now();
            RETURN new;
        END;'
        LANGUAGE 'plpgsql';

    Is the correct trigger for this purpose.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

Reply via email to