sql >> Database >  >> RDS >> PostgreSQL

Variabele die het aantal rijen bevat dat is beïnvloed door de vorige DELETE? (in een functie)

In Oracle PL/SQL is de systeemvariabele om het aantal verwijderde / ingevoegde / bijgewerkte rijen op te slaan:

SQL%ROWCOUNT

Na een DELETE / INSERT / UPDATE-instructie en BEFORE COMMITTING, kunt u SQL%ROWCOUNT opslaan in een variabele van het type NUMBER. Onthoud dat COMMIT of ROLLBACK de waarde van SQL%ROWCOUNT terugzet op NUL, dus u moet de waarde van SQL%ROWCOUNT in een variabele kopiëren VOORDAT COMMIT of ROLLBACK.

Voorbeeld:

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;

Ik heb ook deze interessante OPLOSSING gevonden (bron:http://markmail.org/message/grqap2pncqd6w3sp )



  1. PostgreSQL-controlebeperking voor externe sleutelvoorwaarde

  2. retourneer enkele rij in opgeslagen procedure op oracle

  3. dubbele resultaten

  4. 3 vervelende I/O-statistieken die de prestaties van SQL-query's vertragen