sql >> Databasteknik >  >> RDS >> PostgreSQL

Variabel som innehåller antalet rader som påverkats av tidigare DELETE? (i en funktion)

I Oracle PL/SQL är systemvariabeln för att lagra antalet raderade/infogade/uppdaterade rader:

SQL%ROWCOUNT

Efter en DELETE / INSERT / UPDATE-sats, och INNAN DU KOMMITTERAR, kan du lagra SQL%ROWCOUNT i en variabel av typen NUMBER. Kom ihåg att COMMIT eller ROLLBACK återställde till NOLL värdet av SQL%ROWCOUNT, så du måste kopiera SQL%ROWCOUNT-värdet i en variabel INNAN COMMIT eller ROLLBACK.

Exempel:

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;

Jag har också hittat denna intressanta LÖSNING (källa:http://markmail.org/message/grqap2pncqd6w3sp )



  1. MySQL Behöver hjälp med att konstruera fråga:slå samman flera tabeller i en rad

  2. Hur ställer man in character_set_database och collation_database till utf8 i my.ini?

  3. Få dagnamnet från ett datum i PostgreSQL

  4. Hur exporterar man bildfält till fil?