条件我想执行一个SQL查询在逻辑上等同于以下内容:有效途径凡在SQL语句
DELETE FROM pond_pairs
WHERE
((pond1 = 12) AND (pond2 = 233)) OR
((pond1 = 12) AND (pond2 = 234)) OR
((pond1 = 12) AND (pond2 = 8)) OR
((pond1 = 13) AND (pond2 = 6547)) OR
((pond1 = 13879) AND (pond2 = 6))
我将有几十万pond1
- pond2
对。我有(pond1, pond2)
的索引。
我有限的知识SQL想出了几种方法:
- 运行整个查询的是。
- 批量查询成更小的查询与
n
WHERE
条件 - 保存
pond1
-pond2
对到一个新表,并做一个子查询WHERE
子句中识别 - 转换标识要删除的行蟒蛇逻辑进入存储过程。请注意,我不熟悉编程的存储过程,因此这可能会涉及到一个陡峭的学习曲线。
我使用Postgres的,如果这是相关的。
虽然(除非对已经存在于数据库中),但使用对填充TEMP TABLE与原始DELETE问题是等效的问题。 – Thilo 2010-08-17 06:10:19
不,您可以使用COPY填充临时表。这比其他选项更快地将数据存入临时表。我只是举了一个非常简单的例子,但这个想法是一样的。 – 2010-08-17 06:15:48
您能否演示如何使用COPY填充临时表? – Thilo 2010-08-17 06:37:45