sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du Stored Procedure i MySQL

Lagret procedure giver dig mulighed for at gemme og kalde SQL-forespørgsler, så du ikke behøver at omskrive eller ændre forespørgsler, hvis du skal bruge dem flere gange. Sådan opretter du lagret procedure i MySQL.

Hvad er lagret procedure i MySQL?

Lagret procedure er en måde at gemme SQL-forespørgsler som subrutinefunktioner i MySQL, som du kan kalde tilbage senere, når det er nødvendigt. Den har et navn, parameterliste og SQL-sætninger. Det er en fantastisk mulighed, hvis du har brug for at køre den samme SQL-forespørgsel flere gange, uden ændringer eller med mindre ændringer.

Bonus Læs:Sådan opretter du ny bruger i MySQL

Sådan opretter du Stored Procedure i MySQL

Her er trinene til at oprette en lagret procedure i MySQL ved hjælp af MySQL CREATE PROCEDURE-sætning.

Her er syntaksen til at oprette lagret procedure i MySQL.

DELIMITER //
CREATE PROCEDURE procedure_name(optional_list_of_arguments)
BEGIN
	sql_query;
END //
DELIMITER ;

I ovenstående forespørgsel, procedurenavn er navnet på den lagrede procedure, der kræves for at kalde den senere. valgfri_liste_over_argumenter er listen over argumenter, du typisk sender til enhver funktion.

sql_query er den SQL-forespørgsel, der skal udføres, når du kalder den lagrede procedure. Listen over argumenter kan bruges i SQL-forespørgsel til at gøre den dynamisk.

Bonus Læs:Sådan opretter du database i MySQL

Her er en simpel SQL-forespørgsel, der returnerer alle poster fra ordrer tabel.

mysql> select * from orders;

Her er ovenstående SQL-forespørgsel pakket ind i en lagret procedure get_orders

DELIMITER //
CREATE PROCEDURE get_orders()
BEGIN
	SELECT *  FROM orders;
END //
DELIMITER ;

I ovenstående forespørgsel har vi ikke defineret nogen parametre for vores lagrede procedure.

Bonuslæser:Sådan tilføjes fremmednøgle i MySQL

Du skal bruge CALL-sætningen til at kalde en stored_procedure. Her er syntaksen til at kalde lagret procedure.

CALL procedure_name(list of arguments);

Sådan kalder du en lagret procedure i MySQL.

mysql> call get_orders();
+----+--------------+------------+-------+-------------+---------------------+
| id | product_name | order_date | price | description | created_at          |
+----+--------------+------------+-------+-------------+---------------------+
|  1 | A            | 2020-07-01 |   150 | New product | 2020-06-01 00:00:00 |
|  2 | B            | 2020-07-01 |   235 | Old product | 2020-06-15 00:00:00 |
+----+--------------+------------+-------+-------------+---------------------+

Forhåbentlig kan du nu oprette en lagret procedure i MySQL.

Bonus Læs:Sådan opretter du lagret procedure med parameter i MySQL

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

  1. Hvordan indsætter man en kolonne i en bestemt position i oracle uden at tabe og genskabe tabellen?

  2. Hvad er det maksimale antal tegn for NVARCHAR(MAX)?

  3. Sådan starter parallelle planer op – del 1

  4. Homebrew postgres knækket