Postgresql 具有复杂where条件的批量删除

Postgresql 具有复杂where条件的批量删除,postgresql,Postgresql,我有一个大约有30000行的表,我有一种情况,我必须从表中删除其中的一些行。问题是当我必须删除大约1000行时,单个删除会花费很多时间。为了避免这种情况,我尝试实现批量删除。对于一个postgresql函数,我有一个带有多个检查的where条件。 例如: 现在我正在将单个id、inputName和inputKey传递给函数。 是我可以批处理此删除操作的任何方法,我可以在一个调用中传递条件列表并删除多行 提前感谢您可以将三个值的多个组合传递到语句中 delete from the_table wh

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

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


提前感谢

您可以将三个值的多个组合传递到语句中

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

只是一个疑问,在sqlserver中是否也可能出现这种情况?虽然它是标准SQL,但我认为sqlserver不支持它。它工作正常,谢谢。我只是想确认一下,我应该担心我通过的条件的数量吗?
delete from the_table
where (id, name, "key") in ( (1,'name one','key one'), 
                             (2,'name two', 'key two'), 
                             (3,'name three', 'key three')
                           );