Как удалить только несколько строк в postgreSQL? Я хочу получить 10 строк для удаления в подзапросе.PostgreSQL DELETE FROM (SELECT * FROM table FETCH FIRST 10 ROWS ONLY)
Мой стол
Как удалить только несколько строк в postgreSQL? Я хочу получить 10 строк для удаления в подзапросе.PostgreSQL DELETE FROM (SELECT * FROM table FETCH FIRST 10 ROWS ONLY)
Мой стол
Вы должны использовать где условия согласно вашему требованию, как это:
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);
Если у вас есть уникальный идентификатор (серийный, давайте назовем это «идентификатор») в таблице, то просто сделать что-то вроде:
DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*)
Добавить или нет что-то вроде «LIMIT 0,10»
У меня есть только те же SerialId и valuetimestamp's. Пожалуйста, мой screendump, который я добавил – ArthurDatur
у меня есть только один и тот же SerialId а, nd valuetimestamp's. Поделись фотографией, которую я добавил. – ArthurDatur
@ArthurDatur: - Вы хотите удалить дубликаты? –
Нет, я хочу удалить половину сообщений LIMIT 10 (из 20) bu в реальности это тысячи строк Нет дубликатов – ArthurDatur