Я хочу получить количество строк, сколько записей было удалено. Ниже запрос возвращает количество записей, которые будут затронуты, ноПолучить количество записей удалено sql
SELECT COUNT(*) FROM suppliers
WHERE EXISTS
(SELECT customers.customer_name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id
AND customer_id > 25);
мне нужно что-то вроде этого, после того, как строки были удалены, я могу показать количество записей, которые были удалены на переднем конце.
SELECT COUNT(*) FROM suppliers(
DELETE from supplier(
WHERE EXISTS
(SELECT customers.customer_name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id
AND customer_id > 25));
Я не хочу, чтобы выполнить запрос дважды, один, чтобы получить количество записей, которые будут удалены, если его больше, чем 0, то я запускаю второй запрос, чтобы удалить записи.
Как вы вызова этого SQL? Это важно, потому что большинство инструментов автоматически возвращают количество затронутых записей при запуске команды DELETE. Например, в JDBC-архитектуре Java команда 'executeUpdate' возвращает целое число, представляющее число, удаленное или обновленное (в зависимости от SQL). – schtever
Как насчет @@ ROWCOUNT? – BBauer42
Вы должны использовать предложение 'RETURNING INTO'. Точный метод зависит от того, как вы делаете вызов, но документация находится здесь: http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/returninginto_clause.htm#LNPLS01354. –