Re: need trigger help

Поиск
Список
Период
Сортировка
От Rodrigo De León
Тема Re: need trigger help
Дата
Msg-id a55915760711200819u77b7a7d4y24a9e45cb9766625@mail.gmail.com
обсуждение исходный текст
Ответ на need trigger help  ("Mag Gam" <magawake@gmail.com>)
Список pgsql-novice
On Nov 20, 2007 10:59 AM, Mag Gam <magawake@gmail.com> wrote:
> I want to write a trigger, for UPDATE/INSERT, do a ltrim and rtrim() of name
> value. I want to remove all the beginning and ending blank spaces.

The PostgreSQL docs are really good:

http://www.postgresql.org/docs/8.2/static/plpgsql-trigger.html

Base on the examples from the docs, you could do:

CREATE TABLE T(
    ID INTEGER,
    NAME TEXT
);

CREATE OR REPLACE FUNCTION T_F() RETURNS TRIGGER AS $$
    BEGIN
        IF TG_OP IN ('UPDATE','INSERT') THEN
            NEW.NAME = TRIM(NEW.NAME);
        END IF;
        RETURN NEW;
    END;
$$ LANGUAGE PLPGSQL;

CREATE TRIGGER T_T
BEFORE INSERT OR UPDATE ON T
FOR EACH ROW EXECUTE PROCEDURE T_F();

-- TEST

INSERT INTO T VALUES (1, '         A           ');

SELECT * FROM T;

Good luck.

В списке pgsql-novice по дате отправления:

Предыдущее
От: "Mag Gam"
Дата:
Сообщение: need trigger help
Следующее
От: Robert Bernabe
Дата:
Сообщение: Using Execute with Dynamic Raise Commands