使用 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;
要更新 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;