Làm cách nào để xóa chỉ một vài hàng trong postgreSQL? Tôi muốn tìm nạp 10 hàng cần xóa trong truy vấn phụ.PostgreSQL DELETE FROM (SELECT * FROM bảng FETCH FIRST 10 ROWS ONLY)
bảng My
Làm cách nào để xóa chỉ một vài hàng trong postgreSQL? Tôi muốn tìm nạp 10 hàng cần xóa trong truy vấn phụ.PostgreSQL DELETE FROM (SELECT * FROM bảng FETCH FIRST 10 ROWS ONLY)
bảng My
Bạn cần phải sử dụng một nơi mà điều kiện theo yêu cầu của bạn như thế này:
delete from mytable where id in(1,2,3,4,5,6,7,8,9,10)
hoặc
delete from mytable where id in(select id from mytable where someconditon)
hoặc bạn có thể thử như thế này nếu bạn muốn xóa top 10 bằng cách sử dụng ctid:
DELETE FROM mytable
WHERE ctid IN (
SELECT ctid
FROM mytable
GROUP BY s.serialId, s.valuetimestamp
ORDER BY s.serialId
LIMIT 10
)
Nếu bạn đang tìm kiếm để loại bỏ các bản sao từ bảng của bạn sau đó thử này:
DELETE FROM mytable
WHERE ctid NOT IN
(SELECT MAX(s.ctid)
FROM table s
GROUP BY s.serialId, s.valuetimestamp);
Nếu bạn có một số định danh duy nhất (nối tiếp, chúng ta hãy gọi nó là "id") trong bảng của bạn, sau đó chỉ cần đảm cái gì đó như:
DELETE FROM table WHERE table.id IN (SELECT table.id FROM table WHERE *whatever*)
Thêm hay không cái gì đó như "giới hạn 0,10"
Tôi chỉ có cùng SerialId và valuetimestamp. Xin vui lòng se screendump của tôi mà tôi đã thêm – ArthurDatur
tôi chỉ có SerialId cùng một nd valuetimestamp´s. Se hình ảnh của tôi mà tôi đã thêm vào. – ArthurDatur
@ArthurDatur: - Bạn có muốn xóa các bản sao không? –
Không, tôi muốn xóa một nửa số bài viết LIMIT 10 (trong số 20) bu trong thực tế là hàng ngàn hàng Không có bản sao – ArthurDatur