Re: Need help with trigger
От | Condor |
---|---|
Тема | Re: Need help with trigger |
Дата | |
Msg-id | 533ed7d44063dca8b45626816aa51cad@stz-bg.com обсуждение исходный текст |
Ответ на | Re: Need help with trigger (Adrian Klaver <adrian.klaver@aklaver.com>) |
Ответы |
Re: Need help with trigger
|
Список | pgsql-general |
On 23-01-2021 20:49, Adrian Klaver wrote: > On 1/23/21 10:20 AM, Condor wrote: >> On 23-01-2021 18:31, Adrian Klaver wrote: >>> On 1/23/21 4:57 AM, Condor wrote: >>>> >>>> > >>> >>> So do an UPDATE and the RETURN NULL to cancel the INSERT. Untested >>> example: >>> >>> UPDATE arhive_table SET sendto = 0, uts = date_part('epoch', >>> CURRENT_TIMESTAMP)::integer WHERE contract = NEW.contract AND service >>> = NEW.service; >>> >>> RETURN NULL; >>> >> >> >> Yep, I think about this update and was my first approach but need to >> be done only if end_date is different. >> If end_date is the same this mean contract still exists so only update >> lastseen column, if the lastseen is not updated other process will >> read not seen contracts and will generate report and send them to >> delete services. If lastseen is changed and sendto is zero again, mean >> end_date is changed and need to be send new end_date again to other >> systems. > > So add an: > > ELSIF enddate = FROM NEW.end_date THEN > > and do UPDATE of lastseen column. > > Honestly I think this better handled by the external program that > doing the transformation. > >> >> >> Sorry, I'm sorry, I don't understand something. You mean to do pure INSERT ON CONFLICT DO or to modify the trigger ?
В списке pgsql-general по дате отправления: