pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Dan Langille <dan@langille.org>
To: pgsql-sql@postgresql.org
Subject: DELETE FROM  t WHERE EXISTS
Date: Fri, 28 Feb 2003 12:16:11 -0500
Message-ID: <3E5F530B.1649.424D34C1@localhost> (raw)

Hi folks,

I wanted to delete "old" rows from a table.  These are the rows I 
want to keep:

SELECT * 
FROM clp 
ORDER BY commit_date 
LIMIT 100

So I tried this:

DELETE FROM clp 
WHERE NOT EXISTS (
SELECT * 
FROM clp 
ORDER BY commit_date 
LIMIT 100);

Uhh uhh, nothing deleted.  I don't understand why.

OK, I can do this instead:

DELETE from clp 
where commit_log_id NOT in (
SELECT commit_log_id 
FROM clp 
ORDER BY commit_date 
LIMIT 100);

Can you think of a better way?
-- 
Dan Langille : http://www.langille.org/




view thread (11+ messages)  latest in thread

Message-ID: <3E5F530B.1649.424D34C1@localhost>
Permalink:  ../3E5F530B.1649.424D34C1@localhost/
Also on:    postgresql.org/message-id/3E5F530B.1649.424D34C1@localhost

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: dan@langille.org
  Subject: Re: DELETE FROM  t WHERE EXISTS
  In-Reply-To: <3E5F530B.1649.424D34C1@localhost>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox