Re: Getting NEW and OLD in ordinary functions.

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: Getting NEW and OLD in ordinary functions.
Дата
Msg-id 200304090945.45334.josh@agliodbs.com
обсуждение исходный текст
Ответ на Getting NEW and OLD in ordinary functions.  (Rajesh Kumar Mallah <mallah@trade-india.com>)
Ответы Re: Getting NEW and OLD in ordinary functions.  (<mallah@trade-india.com>)
Список pgsql-sql
Rajesh,

> is it possible to access NEW , OLD rows in an ordinary function
> (function which are not TRIGGER PROCEDURES)

I do this all the time in a roundabout way.
1) I create a function that takes all the columns of the table as parameters.
2) Instead of doing an UPDATE or INSERT into the table, the client calls this
function.
3) I check all the data fed to the function.  If I need to compare it to the
data on disk, I SELECT the "old" data into a RECORD and compare.
4) If everything's ok, I do an UPDATE or INSERT.

I have about 10,000 lines of PL/PgSQL doing this for various applications
where the data integrity logic is too complex for a trigger or check
constraint.  It also allows me to implement a custom locking scheme and
return custom error messages.  It works very well.

--
Josh Berkus
Aglio Database Solutions
San Francisco



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

Предыдущее
От: Dennis Gearon
Дата:
Сообщение: Re: [GENERAL] Yet Another (Simple) Case of Index not used
Следующее
От:
Дата:
Сообщение: Re: Getting NEW and OLD in ordinary functions.