PostgreSQL-Druckvariable

Shihab Sikder 20 Juni 2023
  1. Verwenden Sie raise notice, um den Variablenwert in PostgreSQL zu drucken
  2. Drucken Sie mehrere Variablenwerte in PostgreSQL
PostgreSQL-Druckvariable

Bevor wir die Variable drucken, müssen wir sie in der Postgres-Funktion oder -Abfrage deklarieren. Dann können wir raise notice verwenden, um den Wert dieser Variablen auszudrucken.

Verwenden Sie raise notice, um den Variablenwert in PostgreSQL zu drucken

Nehmen wir an, wir haben die folgende Tabelle mit den Produktinformationen.

postgres=# select * from product;
 product_id |           product_name           | entered_by | product_price | product_stock
------------+----------------------------------+------------+---------------+---------------
          1 | Mustard - Dijon                  |         10 |         57.44 |           155
          2 | Bacardi Limon                    |          6 |         51.68 |           395
          3 | Chicken - Leg, Fresh             |          6 |         57.88 |           130
          4 | Mcgillicuddy Vanilla Schnap      |          9 |         45.76 |           130

Diese Tabelle enthält fünfzig Produktlisten. Angenommen, wir möchten den Durchschnittspreis der Produkte in einer formatierten Zeichenfolge drucken.

Die PL/SQL-Abfrage lautet also:

do $$
declare
  average product.product_price%type;
  begin
    select avg(product_price)
    from product
    into average;

    raise notice 'Average price is %s', average;
  end; $$;

NOTICE:  Average price is 40.36s

Drucken Sie mehrere Variablenwerte in PostgreSQL

Angenommen, Sie möchten den durchschnittlichen Produktpreis und den Gesamtbestand für jede ID anzeigen. Zum Beispiel möchten wir wie folgt drucken: ID 1 hat 400 Produkte eingegeben, und der Durchschnittspreis beträgt 50.

Hier ist der Befehl dazu:

do $$
declare
  average product.product_price%type;
  stock product.product_stock%type;
  id product.entered_by%type;
  begin
    select avg(product_price),sum(product_stock),entered_by
    from product
    into average,stock,id
    WHERE entered_by=1
    GROUP BY ENTERED_BY;
    raise notice 'ID %s entered a total of % products, and the average price is %',id, stock, average;
  end; $$;

NOTICE:  ID 1s entered a total of 1111 products, and the average price is 41.75
DO
postgres=#

So können wir also mehrere Variablen aus der Postgres-Abfrage drucken. Wir können diese raise notice in Funktionen oder innerhalb des DO verwenden.

Sie können auch die Schleife verwenden und jede Zeile drucken, wenn Sie möchten. Um mehr über die Druckfunktion der Variablen zu erfahren, besuchen Sie die offizielle Dokumentation von hier.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website