Erhalten Sie die Anzahl der Datensätze, die von INSERT oder UPDATE in PostgreSQL betroffen sind
Meine Datenbank-Treiber für PostgreSQL 8/9 nicht zurückgeben die Anzahl der betroffenen Datensätze bei der Ausführung INSERT
oder UPDATE
.
PostgreSQL bietet das nicht-standard-syntax "ZURÜCKGEBEN" das scheint wie eine gute Abhilfe. Aber was wäre die syntax? Das Beispiel gibt die ID eines Datensatzes, aber ich brauche eine Zählung.
INSERT INTO distributors (Tat, dname) VALUES (DEFAULT, 'XYZ Widgets')
RÜCKKEHR hat;
InformationsquelleAutor der Frage Un Homme | 2010-10-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, diese Frage ist oooolllllld und meine Lösung ist wohl zu Komplex, aber das ist mein Lieblings-Art von Lösung!
Jedenfalls hatte ich das gleiche zu tun, und habe es funktioniert so:
Einer dieser Tage, die ich wirklich haben, um zu bekommen, schreiben Sie einen lieben Sonett zu PostgreSQL MIT Klausel ...
InformationsquelleAutor der Antwort mercurial
Ich Stimme w/Milen, sollte der Treiber dies für Sie tun. Welchen Treiber benutzt du und für welche Sprache? Aber, wenn Sie mit plpgsql, können Sie DIAGNOSE-my_var = ROW_COUNT;
http://www.postgresql.org/docs/current/static/plpgsql-statements.html
InformationsquelleAutor der Antwort Scott Bailey
Es ist nicht klar, aus Ihrer Frage, wie Sie den Aufruf der Anweisung. Angenommen, Sie sind mit so etwas wie JDBC können Sie fordern es als eine Abfrage anstatt ein update. Von JDBC -
executeQuery
:Dies ist deshalb sinnvoll, wenn Sie eine Anweisung auszuführen, gibt einige Abfrage-Ergebnisse, wie
SELECT
oderINSERT ... RETURNING
. Wenn Sie ein update auf die Datenbank und dann wollen Sie wissen, wie viele Tupel betroffen waren, die Sie verwenden müssenexecuteUpdate
gibt:InformationsquelleAutor der Antwort beldaz