1. Einführung
MySQL ist ein beliebtes relationales Datenbankverwaltungssystem (RDBMS), das SQL-Anweisungen zum Verwalten von Daten verwendet. Eine gespeicherte Prozedur ist eine Sammlung von SQL-Anweisungen, die wiederholt verwendet und aufgerufen werden können. In diesem Artikel werden die Erstellungs-, Aufruf- und Instanzvorgänge gespeicherter Prozeduren in der MySQL-Datenbank vorgestellt.
2. Erstellung gespeicherter MySQL-Prozeduren
Um eine gespeicherte Prozedur in MySQL zu erstellen, können Sie die folgende Anweisung verwenden:
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- put your SQL statements here; END;
procedure_name
: Name der gespeicherten Prozedur. procedure_name
:存储过程名称。parameter_list
:参数列表,可以为空。BEGIN
和END
:SQL语句的开始和结束符。存储过程可以包含0个或多个参数,语法如下:
CREATE PROCEDURE procedure_name (IN|OUT|INOUT parameter_name data_type)
分别表示传入、传出和传入传出参数类型,parameter_name
和data_type
parameter_list
: Parameterliste, kann leer sein. BEGIN
und END
: die Anfangs- und Endzeichen von SQL-Anweisungen. Parameter gespeicherter Prozeduren
Eine gespeicherte Prozedur kann 0 oder mehr Parameter enthalten. Die Syntax lautet wie folgt:CREATE PROCEDURE get_employee (IN employee_id INT) BEGIN SELECT * FROM employee WHERE id = employee_id; END;
parameter_name und <code>data_type
repräsentieren Parameternamen bzw. Datentypen.
Beispiel
Das Folgende ist ein Beispiel für die Erstellung einer gespeicherten Prozedur mit Parametern:CALL procedure_name (parameter_list);
CALL get_employee(1);
CREATE PROCEDURE transfer(IN from_account INT, IN to_account INT, IN amount DECIMAL(10,2)) BEGIN DECLARE from_balance DECIMAL(10,2); DECLARE to_balance DECIMAL(10,2); START TRANSACTION; SELECT balance INTO from_balance FROM account WHERE id = from_account FOR UPDATE; SELECT balance INTO to_balance FROM account WHERE id = to_account FOR UPDATE; IF from_balance < amount THEN ROLLBACK; SELECT 'Insufficient balance' AS message; ELSE UPDATE account SET balance = from_balance - amount WHERE id = from_account; UPDATE account SET balance = to_balance + amount WHERE id = to_account; COMMIT; SELECT 'Transfer succeed!' AS message; END IF; END;
Erstellen Sie eine gespeicherte Übertragungsprozedur
🎜CALL transfer(1, 2, 100);
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der gespeicherten Prozeduren der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!