如何在删除时查看查询影响的行数

时间:2010-03-30 12:13:43

标签: postgresql

我想看看我的删除查询效果有多少行,所以我知道它是正确的。

这可以使用pgadmin吗?

4 个答案:

答案 0 :(得分:1)

我不知道如何自动执行此操作,但您始终可以选择删除。

SELECT COUNT(*) FROM foo WHERE delete_me=true;

DELETE FROM foo WHERE delete_me=true;

答案 1 :(得分:1)

正如Andrew所说,在进行交互式管理时,您只需将DELETE替换为SELECT COUNT(*)

如果您希望在程序中使用程序中的此信息(执行DELETE之后),许多编程语言都会为此提供构造。例如,在PHP中它是pg_affected_rows,在.NET中它是ExecuteNonQuery的返回值。

答案 2 :(得分:1)

启动事务,删除然后回滚;

在psql中:

test1=> begin;
BEGIN
test1=> delete from test1 where test1_id = 1;
DELETE 2
test1=> rollback;
ROLLBACK

在pgAdmin中(在“输出窗格”的“历史记录”标签中):

-- Executing query:
begin;
Query returned successfully with no result in 16 ms.

-- Executing query:
delete from test1 where test1_id = 1;
Query returned successfully: 2 rows affected, 16 ms execution time.

-- Executing query:
rollback;
Query returned successfully with no result in 16 ms.

答案 3 :(得分:0)

使用RETURNING并获取结果,就像获取SELECT结果一样:

DELETE FROM test1 WHERE test1_id = 1 RETURNING id;

这适用于版本8.2