I see what you're saying:
pg=# select tablename from pg_tables where tablename like 'tmp_staging%' and tablename < 'tmp_staging1230' and
tablename> 'tmp_staging1228'; tablename
--------------------tmp_staging1229
This query is part of a larger script where I want to dynamically select
tablenames older than 10 days and drop them. The tables are created in
a tmp_stagingMMDD format. I know postgres does not maintain object
create times, how can I write this to select tables from pg_tables that
are older than 10 days?
Thanks.
Tony
On Mon, 2012-01-09 at 08:19 -0800, Adrian Klaver wrote:
> On Monday, January 09, 2012 8:12:18 am Tony Capobianco wrote:
> > I have these 3 tables:
> >
> > tablename
> > --------------------
> > tmp_staging0109
> > tmp_staging1229
> > tmp_staging0108
> >
> >
> > I'd like this query:
> >
> > select tablename from pg_tables where tablename like 'tmp_staging%' and
> > tablename < 'tmp_staging1230';
> >
> > To return this result:
> >
> > tablename
> > --------------------
> > tmp_staging1229
> >
> > However, I'm receiving:
> >
> > tablename
> > --------------------
> > tmp_staging0109
> > tmp_staging1229
> > tmp_staging0108
> >
> > How can I write this correctly?
>
> As far as I can tell it is correct. 0108,0109 and 1229 are all less than 1230.
> What happens if you do?:
>
> select tablename from pg_tables where tablename like 'tmp_staging%' and
> tablename < 'tmp_staging1230' and tablename > 'tmp_staging1228;
>
> >
> > Thanks.
> > Tony
>