sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL Skapa funktion

PostgreSQL-funktioner är lagrade procedurer som låter dig lagra en uppsättning databasoperationer i en funktion som kan anropas upprepade gånger utan att manuellt skriva instruktioner varje gång. Det är ett utmärkt verktyg för databasåteranvändning och automatisering i applikationer. Du kan också använda den för att skapa användardefinierade funktioner och lagrade procedurer. Så här använder du PostgreSQL skapa funktionskommandot.


PostgreSQL Skapa funktion

Här är syntaxen för PostgreSQL CREATE FUNCTION.

CREATE [OR REPLACE] FUNCTION function_name (arguments) 
RETURNS return_datatype AS $variable_name$ 
DECLARE declaration; [...] 
BEGIN < function_body > [...] 
RETURN { variable_name | value } 
END; 
LANGUAGE plpgsql;

I ovanstående fråga måste du ange

funktionsnamn – namnet på funktionen

[ELLER ERSÄTT] – valfritt nyckelord för att ändra befintlig funktion

function_body – uppsättning operationer som ska utföras som en del av funktionen

retur uttalande med eller utan en returvariabel/värde

deklarera variabler för att lagra funktionsvärden

språk – PostgreSQL låter dig definiera funktioner i olika språk som PostgreSQL, SQL, C, Python och andra procedurspråk.

Bonus Läs:PostgreSQL Skapa Schema

CREATE FUNCTION exempel

Här är ett exempel på hur man skapar lagrad procedur i PostgreSQL. Låt oss säga att du har följande tabell försäljning

postgres=# select * from sales;
 order_date | sale
------------+------
 2020-04-01 |  210
 2020-04-02 |  125
 2020-04-03 |  150
 2020-04-04 |  230
 2020-04-05 |  200
 2020-04-10 |  220
 2020-04-06 |  250
 2020-04-07 |  215
 2020-04-08 |  300
 2020-04-09 |  250

Bonus Läs:PostgreSQL Skapa databas


Låt oss skapa en total()-funktion som räknar antalet rader i försäljning bord

postgres=# CREATE OR REPLACE FUNCTION total()
           RETURNS integer AS $total$
           declare
             total integer;
           BEGIN
             SELECT count(*) into total FROM sales;
             RETURN total;
          END;
          $total$ LANGUAGE plpgsql;
CREATE FUNCTION

I ovanstående fråga har vi definierat funktionen total() så att den exekverar SQL-frågan som nämns mellan BEGIN och END och lagrar resultatet i den deklarerade variabeln $total , som returneras efter funktionskörning.

Så här kör du PostgreSQL-funktionen

postgres=# select total();
 total
-------
    10

Bonus Läs:Hur man skapar histogram i PostgreSQL

Förhoppningsvis kommer handledningen ovan att hjälpa dig att skapa användardefinierad funktion och lagrad procedur i PostgreSQL.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Hur lägger man till en auto-inkrementerande primärnyckel till en befintlig tabell, i PostgreSQL?

  2. Hur man ersätter en del av en sträng i SQL

  3. Hur COS() fungerar i MariaDB

  4. Matcha en fras som slutar på ett prefix med fulltextsökning