Как посмотреть количество строк, на которые влияет запрос при удалении - PullRequest
0 голосов
/ 30 марта 2010

Я хочу посмотреть, сколько строк выполняет мой запрос на удаление, поэтому я знаю, что это правильно.

Возможно ли это с помощью pgadmin?

Ответы [ 4 ]

1 голос
/ 30 марта 2010

Как сказал Эндрю, при интерактивном администрировании вы можете просто заменить DELETE на SELECT COUNT(*).

Если вы хотите получить эту информацию в вашей программе ( после выполнения DELETE), многие языки программирования предоставляют конструкцию для этого. Например, в PHP это pg_affered_rows , а в .NET это возвращаемое значение ExecuteNonQuery .

1 голос
/ 30 марта 2010

Начать транзакцию, удалить, а затем выполнить откат;

В 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.
1 голос
/ 30 марта 2010

Я не уверен, как автоматически сделать это, но вы всегда можете сделать выбор, а затем удалить.

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

DELETE FROM foo WHERE delete_me=true;
0 голосов
/ 30 марта 2010

Используйте RETURNING и получите результат, как если бы вы выбрали SELECT-результат:

DELETE FROM test1 WHERE test1_id = 1 RETURNING id;

Это работает с версии 8.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...