Getting NEW and OLD in ordinary functions.
От | Rajesh Kumar Mallah |
---|---|
Тема | Getting NEW and OLD in ordinary functions. |
Дата | |
Msg-id | 200304091551.02277.mallah@trade-india.com обсуждение исходный текст |
Ответы |
Re: Getting NEW and OLD in ordinary functions.
Re: Getting NEW and OLD in ordinary functions. |
Список | pgsql-sql |
Hi, is it possible to access NEW , OLD rows in an ordinary function (function which are not TRIGGER PROCEDURES) motivation: We need to ensure data integrity of every row in a table. 1. one way is to one or many CHECK constraint on columns (or domains in 7.4). 2. To ADD a trigger procedure that checks for updates and new inserts. Problem(i feel) with 1 is that as my logic keeps getting more and more complicated it may not be possible to put everything in a CHECK / set of CHECK contraints. the logic may even require querying other tables which is anyway not possible in a CHECK () at the moment. Problem with 2 is whenever the logic changes we need to check that all the rows of the existing table satisfies it that logic. for this we either have toreload the data OR run a dummy update on tableso that procedure is called for all the existing rows. 3. since ADDing of a CHECK constriaint checks all the rows of a table. It looks like a better approach to me. whenever the logic changes we just DROP the CHECK constraint and Add it again so that all the rows are rechecked. the problem i am facing with 3 is that i dont seem to find an easy way of accessing the current record . two possible workarounds are 1) pass the primary key to the function and query the table again for the record. 2) pass all the columns as arguments to the function that has to check the consistency. in first case a primary key may not always exists for a relation . in sencond case too many arguments requried to be passed as ur logic grows. so i was wondering abt automagically getting NEW/OLD or a current record in a function that can be used in check constraint . Regds Mallah. -- Rajesh Kumar Mallah, Project Manager (Development) Infocom Network Limited, New Delhi phone: +91(11)6152172 (221) (L) ,9811255597 (M) Visit http://www.trade-india.com , India's Leading B2B eMarketplace.
В списке pgsql-sql по дате отправления: