Re: how to create such a function??
От | Jeff Eckermann |
---|---|
Тема | Re: how to create such a function?? |
Дата | |
Msg-id | 20031126155145.82493.qmail@web20806.mail.yahoo.com обсуждение исходный текст |
Ответ на | how to create such a function?? ("Ireneusz Kramarz" <ikramarz@wsb-nlu.edu.pl>) |
Список | pgsql-novice |
--- Ireneusz Kramarz <ikramarz@wsb-nlu.edu.pl> wrote: > Hi there, > I want to create a function and a trigger, but I > don't know how... :( You need to create a before trigger. The documentation on "create trigger" will show you how. > I need something that would work when I update the > table 'stock' , by insert some integer value into > 'sold'. Then the integer value in field 'stock' has > to be decreased by that inserted value. > > example of my problem: > > -table 'stock' before updating 'sold' field > > ticket_id | stock | sold > 1 | 30 | 0 > > -how table 'stock' should look like after: update > stock set sold=2 where bilet_id=1; > > ticket_id | stock | sold > 1 | 28 | 2 In your trigger function, you access the old and new values using the "old" and "new" aliases. So your logic would be something like: IF NEW.sold <> OLD.sold THEN NEW.stock := OLD.stock + OLD.sold - NEW.sold END IF Look at the "create function" documentation to fill in the details. You will need to guard against "stock" and "sold" being null, perhaps by a table constraint. __________________________________ Do you Yahoo!? Free Pop-Up Blocker - Get it now http://companion.yahoo.com/
В списке pgsql-novice по дате отправления: