From: | Herouth Maoz <herouth(at)unicell(dot)co(dot)il> |
---|---|
To: | Vik Fearing <vik(dot)fearing(at)dalibo(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: An archiving query - is it safe? |
Date: | 2014-01-14 14:34:58 |
Message-ID: | 1B2E5BB4-D7BE-46A9-9E2C-4B2A4A733CF5@unicell.co.il |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 14/01/2014, at 14:55, Vik Fearing wrote:
> On 01/14/2014 12:06 PM, Herouth Maoz wrote:
>> I have regular archiving scripts which traditionally did something like this
>>
>> BEGIN TRANSACTION;
>> INSERT INTO a__archive
>> SELECT * FROM a
>> WHERE <condition>; -- date range condition
>>
>> DELETE FROM a
>> WHERE <condition>; -- same date range condition
>> COMMIT;
>>
>> This is "classic" SQL. I'm thinking of changing this into something like:
>>
>> WITH del AS ( DELETE FROM a WHERE <condition> RETURNING * )
>> INSERT INTO a__archive SELECT * FROM del;
>>
>> As this would only access table "a" once, deleting and returning the records in the same access, which I believe will be more efficient.
>>
>> Is this safe to do? Is there any danger of losing data? Is it atomic?
>
> Yes. No. Yes.
Thank you, I will proceed with this plan, then.
Herouth
From | Date | Subject | |
---|---|---|---|
Next Message | gmb | 2014-01-15 08:52:05 | debugging triggers - get original statement? |
Previous Message | Vik Fearing | 2014-01-14 12:55:23 | Re: An archiving query - is it safe? |