Re: DELETE FROM t WHERE EXISTS
| От | Dmitry Tkach |
|---|---|
| Тема | Re: DELETE FROM t WHERE EXISTS |
| Дата | |
| Msg-id | 3E5FE6E8.9020200@openratings.com обсуждение исходный текст |
| Ответ на | DELETE FROM t WHERE EXISTS ("Dan Langille" <dan@langille.org>) |
| Список | pgsql-sql |
What about select * into temp rows_to_keep from clp order by commit_date limit 100; truncate clp; insert into clp select * from rows_to_keep; Dima. Dan Langille wrote: > 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?
В списке pgsql-sql по дате отправления: