1. Introduction
MySQL est un système de gestion de base de données relationnelle (SGBDR) populaire, qui utilise des instructions SQL pour exploiter les données. Une procédure stockée est un ensemble d'instructions SQL qui peuvent être utilisées et appelées à plusieurs reprises. Cet article présentera les opérations de création, d'appel et d'instance de procédures stockées dans la base de données MySQL.
2. Création de procédures stockées MySQL
Pour créer une procédure stockée dans MySQL, vous pouvez utiliser l'instruction suivante :
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- put your SQL statements here; END;
procedure_name
: nom de la procédure stockée. 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
: Liste de paramètres, peut être vide. BEGIN
et END
: les caractères de début et de fin des instructions SQL. Paramètres des procédures stockées
Une procédure stockée peut contenir 0 ou plusieurs paramètres. La syntaxe est la suivante :CREATE PROCEDURE get_employee (IN employee_id INT) BEGIN SELECT * FROM employee WHERE id = employee_id; END;
nom_paramètre <.> et <code>data_type
représentent respectivement les noms de paramètres et les types de données.
Exemple
Ce qui suit est un exemple de création d'une procédure stockée avec des paramètres :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;
Créer une procédure stockée de transfert
🎜CALL transfer(1, 2, 100);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!