sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL oprettelsesfunktion

PostgreSQL-funktioner er lagrede procedurer, der giver dig mulighed for at gemme et sæt databasehandlinger i en funktion, som kan kaldes gentagne gange uden manuelt at indtaste instruktioner hver gang. Det er et fantastisk værktøj til databasegenbrug og automatisering i applikationer. Du kan også bruge den til at oprette brugerdefinerede funktioner og lagrede procedurer. Sådan bruger du PostgreSQL create function-kommandoen.


PostgreSQL oprettelsesfunktion

Her er syntaksen for 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 ovenstående forespørgsel skal du angive

funktionsnavn – navnet på funktionen

[ELLER ERSTAT] – valgfrit nøgleord til ændring af eksisterende funktion

function_body – sæt af operationer, der skal udføres som en del af funktionen

retur sætning med eller uden en returvariabel/værdi

erklær variabler til at gemme funktionsværdier

sprog – PostgreSQL giver dig mulighed for at definere funktion i forskellige sprog såsom PostgreSQL, SQL, C, Python og andre proceduresprog.

Bonus Læs:PostgreSQL Opret skema

CREATE FUNCTION eksempel

Her er et eksempel på, hvordan man opretter lagret procedure i PostgreSQL. Lad os sige, at du har følgende tabel salg

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 Opret database


Lad os oprette en total() funktion, der tæller antallet af rækker i salg 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 ovenstående forespørgsel har vi defineret funktionen total() sådan, at den udfører SQL-forespørgslen nævnt mellem BEGIN og END og gemmer resultatet i den erklærede variabel $total , som returneres efter funktionsudførelse.

Her er, hvordan du udfører PostgreSQL-funktionen

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

Bonus Læs:Sådan opretter du histogram i PostgreSQL

Forhåbentlig vil ovenstående vejledning hjælpe dig med at oprette brugerdefinerede funktioner og lagret procedure i PostgreSQL.

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Sådan opretter du PDF-rapport ved hjælp af PL/SQL

  2. Gem output fra sql-funktion til csv-fil (COPY) med dynamisk filnavn

  3. Perl DBI - kør SQL Script med flere sætninger

  4. Sådan får du input fra brugeren under kørsel