PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zmienna zawierająca liczbę wierszy, których dotyczyło poprzednie polecenie DELETE? (w funkcji)

W Oracle PL/SQL zmienna systemowa do przechowywania liczby usuniętych / wstawionych / zaktualizowanych wierszy to:

SQL%ROWCOUNT

Po instrukcji DELETE/INSERT/UPDATE i PRZED ZATWIERDZENIEM możesz przechowywać SQL%ROWCOUNT w zmiennej typu NUMBER. Pamiętaj, że COMMIT lub ROLLBACK resetują do ZERO wartość SQL%ROWCOUNT, więc musisz skopiować wartość SQL%ROWCOUNT do zmiennej BEFORE COMMIT lub ROLLBACK.

Przykład:

BEGIN
   DECLARE
      affected_rows   NUMBER DEFAULT 0;
   BEGIN
      DELETE FROM feeds_item
            WHERE shareurl = re1;

      affected_rows := SQL%ROWCOUNT;
      DBMS_OUTPUT.
       put_line (
            'This DELETE would affect '
         || affected_rows
         || ' records in FEEDS_ITEM table.');
      ROLLBACK;
   END;
END;

Znalazłem również to interesujące ROZWIĄZANIE (źródło:http://markmail.org/message/grqap2pncqd6w3sp )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać zmiennych skryptowych w psql?

  2. Jak uzyskać pierwszy i ostatni rekord z zapytania sql?

  3. Dołącz jeden do wielu i pobierz pojedynczy wynik

  4. Implementacja konfiguracji wielu centrów danych dla PostgreSQL — część pierwsza

  5. Przechowuj w tabeli tylko 5 ostatnich wyników wyszukiwania użytkownika