sql >> Databasteknik >  >> RDS >> Mysql

Hur man skapar lagrad procedur i MySQL

Med lagrad procedur kan du spara och anropa SQL-frågor, så du behöver inte skriva om eller ändra frågor om du behöver använda dem flera gånger. Så här skapar du lagrad procedur i MySQL.

Vad är lagrad procedur i MySQL?

Lagrad procedur är ett sätt att spara SQL-frågor som subrutinfunktioner i MySQL, som du kan ringa tillbaka senare vid behov. Den har ett namn, parameterlista och SQL-satser. Det är ett utmärkt alternativ om du behöver köra samma SQL-fråga flera gånger, utan några ändringar eller med mindre ändringar.

Bonus Läs:Hur man skapar en ny användare i MySQL

Hur man skapar lagrad procedur i MySQL

Här är stegen för att skapa en lagrad procedur i MySQL med MySQL CREATE PROCEDURE-satsen.

Här är syntaxen för att skapa lagrad procedur i MySQL.

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

I ovanstående fråga, procedurnamn är namnet på den lagrade proceduren som krävs för att anropa den senare. optional_list_of_arguments är listan med argument som du vanligtvis skickar till valfri funktion.

sql_query är SQL-frågan som ska köras när du anropar den lagrade proceduren. Listan med argument kan användas i SQL-frågan för att göra den dynamisk.

Bonus Läs:Hur man skapar en databas i MySQL

Här är en enkel SQL-fråga som returnerar alla poster från order bord.

mysql> select * from orders;

Här är ovanstående SQL-fråga insvept i en lagrad procedur get_orders

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

I ovanstående fråga har vi inte definierat några parametrar för vår lagrade procedur.

Bonus Läs:Hur man lägger till främmande nyckel i MySQL

Du måste använda CALL-satsen för att anropa en lagrad_procedur. Här är syntaxen för att anropa lagrad procedur.

CALL procedure_name(list of arguments);

Så här anropar du en lagrad procedur 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 |
+----+--------------+------------+-------+-------------+---------------------+

Förhoppningsvis kan du nu skapa en lagrad procedur i MySQL.

Bonus Läs:Hur man skapar lagrad procedur med parameter i MySQL

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

  1. Jämförelse av Entity Framework-kompatibla leverantörer för Oracle?

  2. Vad betyder =*?

  3. Där värde i kolumn som innehåller kommaavgränsade värden

  4. Hur CONV() fungerar i MariaDB