在条件复杂的情况下批量删除

时间:2019-07-05 13:13:10

标签: postgresql

我有一个约有3万行的表,而且我不得不从表中删除其中的一些行。问题是当我必须删除大约1000行时,单个删除要花很多时间。为了避免这种情况,我尝试实现批量删除。对于一个postgresql函数,我有一个带有多个检查的where条件。 例如:

DELETE FROM tbName WHERE id = id AND name = inputName AND key = inputKey;

现在我正在将单个id,inputName和inputKey传递给函数。 我可以通过任何方式批处理此删除操作,在此我可以传递条件列表并在单个调用中删除多行。

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以将三个值的多个组合传递给语句。

delete from the_table
where (id, name, "key") in ( (1,'name one','key one'), 
                             (2,'name two', 'key two'), 
                             (3,'name three', 'key three')
                           );