Re: Default on update

From: lucas(at)presserv(dot)org
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Default on update
Date: 2005-11-23 13:56:26
Message-ID: 20051123105626.fon1t82f0ctcgogw@www.presserv.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> Quoting Richard Huxton <dev(at)archonet(dot)com>:
> lucas(at)presserv(dot)org wrote:
>> Hi.
>> Is there a way to create "default" constraint on UPDATE query.
>> It's becouse I have a bool field that may NOT support NULL value, but the
>> Front-End calls null for FALSE values.
>
> Sounds like your frontend is broken.
>
Yes, it is. But I have no access to the front-end. I will send it to the
programmer.

>> I was thinking something like:
>> create table table1 (
>> id serial primary key,
>> bv bool default false not null
>> );
>> I would want to replace "bv" values with FALSE when insert/update
>> NULL value for
>> this field.
>
> You could do this by having the application insert to a view with a
> rule that replaces null bv values before redirecting to the base
> table.
Is more functional to create a Rule instead of a trigger?

>
>> Or need I create a TRIGGER that check it and replace the itens???
>> CREATE or REPLACE function TG_table1_check RETURNS trigger as '
>> BEGIN
>> IF nullvalue(NEW.bv) THEN
>
> IF NEW.bv IS NULL THEN
>
What is the difference between nullvalue() and IS NULL???

>> NEW.bv=FALSE;
>> END IF;
>> END;
>> ' language 'plpgsql'; CREATE TRIGGER TG_table1_check BEFORE UPDATE
>> on table1 for
>> each row execute procedure tg_table1_check();
>
> To make the trigger work you'll have to relax the "NOT NULL" on
> column "bv" otherwise PG's type-checks will raise an error. Oh, and
> then make sure the trigger is called before INSERT too.
>
Okay.

>> Other question: I have a lot of triggers in my db system, I have
>> table that has
>> 5/6 triggers, many triggers are simple (like the tg_table1_check), any are
>> complex... Is it a problem??? My tests are with few regs and run fine. Where
>> can I read more about triggers and performance?
>
> Triggers behave exactly as you'd expect. For every row (or statement)
> the function gets executed. Difficult to say what effect they'll have
> on performance without testing with your actual setup.
>
Ok, I will test with more records.
Thank you.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Fernando Garcia 2005-11-23 14:07:22 OUT OF THIS LIST......
Previous Message Richard Huxton 2005-11-23 12:22:59 Re: Default on update