Re: How to delete the oldest X number of rows?

From: Mathieu Arnold <mat(at)mat(dot)cc>
To: pgsql-novice(at)postgresql(dot)org
Cc: John Roberts <jsrober(at)hotmail(dot)com>
Subject: Re: How to delete the oldest X number of rows?
Date: 2005-12-12 16:42:38
Message-ID: A97C5DE9038833F04CF53C41@andromede.in.absolight.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

+-le 12/12/2005 11:29 -0500, John Roberts a dit :
| Hi,
|
| I have a table that logs the performance of a system. I get an entry in
| this table each time the system does something.
|
| I want to keep the last 50,000 rows in the table. I'd like to run a cron
| job every 5 minutes that will delete all rows > 50,000, oldest first.
| What's the most efficient way to do this query/delete?
|
| DELETE FROM log WHERE timestamp < ????
|
| I can come up with a way to do this using COUNT(*), but I'll bet there is a
| smarter way.

Would that :
DELETE FROM log WHERE timestamp < (select timestamp from log order by
timestamp desc limit 1 offset 50000);

do ?

--
Mathieu Arnold

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message A. Kretschmer 2005-12-12 16:47:16 Re: How to delete the oldest X number of rows?
Previous Message John Roberts 2005-12-12 16:29:58 How to delete the oldest X number of rows?