Re: basic trigger using OLD not working?
От | Sven Willenberger |
---|---|
Тема | Re: basic trigger using OLD not working? |
Дата | |
Msg-id | 422151B1.7050602@dmv.com обсуждение исходный текст |
Ответ на | Re: basic trigger using OLD not working? (Rick.Casey@colorado.edu) |
Ответы |
Re: basic trigger using OLD not working? >>THANKS!
|
Список | pgsql-general |
Rick.Casey@colorado.edu presumably uttered the following on 02/25/05 19:14: > Yes, thank you, I corrected my function from statement level to row level. > This did get rid of the error message. However, I still get no output from > an OLD variable that should contain data: see the test variable in the > simple case below. > > How else can I test OLD variables? This is the simplest test case I can > think of. Any suggestions would be appreciated! > > Thanks, > Rick > > >>I think you have created a statement level trigger (If they existed in >>7.4.7...) by not including FOR EACH ROW in your create statement. In >>statement level triggers, there is no OLD or NEW. >> >> >>>>>Rick Casey <rick.casey@colorado.edu> 02/24/05 1:22 PM >>> >> >>Hello all, >> >>I am trying to a simple thing: create a log history of deletes, and >>updates; but which I am having trouble getting to work in PG 7.4.7 >>(under Debian Linux 2.6.8). >> >>I have reduced my code to the following trivial case: >> >>Here is the code that creates the delete trigger: >>create trigger PEDIGREES_hist_del_trig >>AFTER DELETE >>on PEDIGREES >>EXECUTE PROCEDURE logPedigreesDel(); >> >> >>Here is the trigger code: (famindid is an integer field in the Pedigrees >> >>table): >> >>CREATE OR REPLACE FUNCTION logPedigreesDel() RETURNS TRIGGER AS ' >>DECLARE >> test integer; >>begin >> test := OLD.famindid; >> RAISE EXCEPTION ''OLD.famindid = '', test; >> return OLD; >>end; >>' LANGUAGE plpgsql; >> >> > Need a place holder for your variable in your RAISE expression (like a printf syntax): RAISE EXCEPTION ''OLD.famindid = %'', test; btw, if you just want to see the variable without having your function bail on you, try RAISE NOTICE ''OLD.famindid = %'', test; Sven
В списке pgsql-general по дате отправления: