使用 generate_series() 删除行范围?

Delete range of rows using generate_series()?

要更新 table 中的每一行,我使用此查询(并且有效):

我想知道我是否可以对 DELETE 使用类似的符号?

类似于:

DELETE from test2
from generate_series(1, 1000) as idx
WHERE id = idx;

不会起作用,因为第二个 FROM 当然是无效的。知道如何解决这个问题吗?

这种操作的最佳实践是什么?

使用USING:

DELETE from test2 
       using generate_series(1, 1000) idx
       WHERE id = idx

What is the best practice for this kind of operation?

可以使用generate_series(),就像戈登演示的那样。这甚至可能对 non-integer 类型或增量 <> 1 有意义。
对于简单的情况,简单查询更好,但是:

DELETE FROM test2 
WHERE  id BETWEEN 1 AND 1000;