PostgreSQL удалить из (выберите * из таблицы только первые 10 строк)
2 ответов
вам нужно использовать условие где согласно вашему требованию как это:
delete from mytable where id in(1,2,3,4,5,6,7,8,9,10)
или
delete from mytable where id in(select id from mytable where someconditon)
или вы можете попробовать это, если вы хотите удалить топ-10, используя ctid:
DELETE FROM mytable
WHERE ctid IN (
SELECT ctid
FROM mytable
GROUP BY s.serialId, s.valuetimestamp
ORDER BY s.serialId
LIMIT 10
)
если вы хотите удалить дубликаты из таблицы, то попробуйте этот:
DELETE FROM mytable
WHERE ctid NOT IN
(SELECT MAX(s.ctid)
FROM table s
GROUP BY s.serialId, s.valuetimestamp);
Если у вас есть уникальный идентификатор (последовательный, назовем его "id") в вашей таблице, то просто сделайте что-то вроде :
DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*)
добавить или нет что-то вроде "LIMIT 0,10"