Comment puis-je supprimer seulement quelques lignes dans postgreSQL? Je veux extraire 10 lignes à supprimer dans une sous-requête.
Ma table
Vous devez utiliser une condition where selon vos besoins, comme ceci:
delete from mytable where id in(1,2,3,4,5,6,7,8,9,10)
ou
delete from mytable where id in(select id from mytable where someconditon)
ou vous pouvez essayer comme ceci si vous voulez supprimer le top 10 en utilisant ctid :
DELETE FROM mytable
WHERE ctid IN (
SELECT ctid
FROM mytable
GROUP BY s.serialId, s.valuetimestamp
ORDER BY s.serialId
LIMIT 10
)
Si vous cherchez à supprimer les doublons de votre table, essayez ceci:
DELETE FROM mytable
WHERE ctid NOT IN
(SELECT MAX(s.ctid)
FROM table s
GROUP BY s.serialId, s.valuetimestamp);
Si vous avez un identifiant unique (serial, appelons-le "id") dans votre table, créez simplement quelque chose comme
DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*)
Ajouter ou non quelque chose comme "LIMIT 0,10"