Re: Trigger function is not called

From: Bill <pg(at)dbginc(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PgSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Trigger function is not called
Date: 2008-08-26 02:53:53
Message-ID: 48B37041.9020908@dbginc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Tom Lane wrote:
> Bill <pg(at)dbginc(dot)com> writes:
>
>> I removed the domain from the category_id and version columns leaving
>> the following table, trigger function and trigger. The trigger function
>> is still not called when I insert a new row. Any other ideas?
>>
>
> You're still expecting the trigger to get invoked before any constraints
> are enforced (the NOT NULLs being the problem here, I think). Again,
> you can enforce things through a trigger or through a table constraint,
> but mixing and matching won't work too well.
>
> regards, tom lane
>
>
>
The thing that has me confused is that the following table, trigger and
trigger function work perfectly and the primary key for this table is
also bigint not null. I added a bigint not null domain to this schema
and changed the data type of the key to the domain and then I get the
constraint violation. I changed the type of the key column back to
bigint not null and the trigger fires and no error occurs.

Bill

CREATE TABLE test.trigger_test
(
"key" bigint NOT NULL,
data character varying(16),
CONSTRAINT trigger_test_key PRIMARY KEY (key)
)

CREATE OR REPLACE FUNCTION test.trigger_test_before_insert()
RETURNS trigger AS
$BODY$
begin
raise notice '*****Test before insert*****';
new."key" := nextval('test.id_seq');
return new;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE

CREATE TRIGGER trigger_test_insert
BEFORE INSERT
ON test.trigger_test
FOR EACH ROW
EXECUTE PROCEDURE test.trigger_test_before_insert();

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-08-26 03:04:03 Re: Trigger function is not called
Previous Message Tom Lane 2008-08-26 02:41:40 Re: Trigger function is not called