From: | Condor <condor(at)stz-bg(dot)com> |
---|---|
To: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Need help with trigger |
Date: | 2021-01-23 20:14:09 |
Message-ID: | 533ed7d44063dca8b45626816aa51cad@stz-bg.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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 ?
From | Date | Subject | |
---|---|---|---|
Next Message | robert rottermann | 2021-01-23 20:36:32 | ubuntu 18: PostgreSQL does not start. how can I totally remove and reinstall it |
Previous Message | Adrian Klaver | 2021-01-23 18:49:27 | Re: Need help with trigger |