Maison > Article > base de données > exécution d'une procédure stockée mysql
MySQL est un système de gestion de bases de données relationnelles open source Comparé à d'autres systèmes de gestion de bases de données relationnelles, MySQL est l'un des systèmes les plus couramment utilisés. MySQL peut effectuer un traitement de données complexe et une logique métier via des procédures stockées, améliorant ainsi les performances et l'efficacité de la base de données. Ce qui suit décrit comment exécuter des procédures stockées MySQL.
Dans MySQL, vous pouvez utiliser l'instruction "CREATE PROCEDURE" pour créer une procédure stockée. La syntaxe est la suivante :
CREATE PROCEDURE procedure_name ([IN / OUT / INOUT] parameter_name data_type, [...]) BEGIN -- 存储过程体 END;
Où :
Par exemple, voici un exemple simple de procédure stockée :
CREATE PROCEDURE hello_world() BEGIN SELECT 'Hello, World!'; END;
Vous devez utiliser l'instruction "CALL" pour exécuter une procédure stockée. La syntaxe est la suivante :
CALL procedure_name([parameter_value, ...]);
Où :
Par exemple, nous pouvons utiliser l'instruction suivante pour exécuter la procédure stockée hello_world() créée ci-dessus :
CALL hello_world();
Le résultat de l'exécution est le suivant :
+-------------+ | Hello, World! | +-------------+ | Hello, World! | +-------------+ 1 row in set (0.00 sec)
L'utilisation du paramètre IN peut passer la valeur de la procédure stockée pour Effectuer une action spécifique. Par exemple, la procédure stockée suivante utilisera le paramètre IN pour trouver les détails d'un utilisateur spécifié :
CREATE PROCEDURE get_user_details(IN user_id INT) BEGIN SELECT * FROM users WHERE id = user_id; END;
Lors de l'exécution de la procédure stockée, nous devons transmettre un identifiant utilisateur à la procédure stockée. Par exemple, voici un exemple :
CALL get_user_details(1);
Le résultat de l'exécution est le suivant :
+----+----------+---------+------------+ | id | username | country | created_at | +----+----------+---------+------------+ | 1 | john | USA | 2022-05-01 | +----+----------+---------+------------+ 1 row in set (0.00 sec)
L'utilisation des paramètres OUT peut renvoyer des valeurs de procédures stockées. Par exemple, la procédure stockée suivante renverra les détails de l'utilisateur spécifié à l'aide du paramètre OUT :
CREATE PROCEDURE get_user_details(IN user_id INT, OUT username TEXT, OUT country TEXT, OUT created_at DATE) BEGIN SELECT username, country, created_at INTO username, country, created_at FROM users WHERE id = user_id; END;
Lors de l'exécution de cette procédure stockée, nous devons transmettre un identifiant utilisateur, et la procédure stockée renverra les détails de l'utilisateur correspondant à cette pièce d'identité. Par exemple, voici un exemple :
CALL get_user_details(1, @username, @country, @created_at); SELECT @username, @country, @created_at;
Le résultat de l'exécution est le suivant :
+----------+---------+------------+ | @username | @country | @created_at | +----------+---------+------------+ | john | USA | 2022-05-01 | +----------+---------+------------+ 1 row in set (0.00 sec)
En utilisant les paramètres INOUT, vous pouvez passer un paramètre dans la procédure stockée et utiliser le paramètre pour renvoyer une valeur. Par exemple, la procédure stockée suivante utilisera le paramètre INOUT pour mettre à jour les détails d'un utilisateur spécifié :
CREATE PROCEDURE update_user_details(INOUT user_id INT, IN username TEXT, IN country TEXT, IN created_at DATE) BEGIN UPDATE users SET username = username, country = country, created_at = created_at WHERE id = user_id; END;
Lors de l'exécution de cette procédure stockée, nous devons transmettre un identifiant utilisateur et les détails à mettre à jour. Par exemple, voici un exemple :
SET @user_id = 1; CALL update_user_details(@user_id, 'jane', 'UK', '2022-05-01'); SELECT @user_id;
Le résultat de l'exécution est le suivant :
+---------+ | @user_id | +---------+ | 1 | +---------+ 1 row in set (0.00 sec)
Comme vous pouvez le voir, la procédure stockée a réussi à mettre à jour les détails de l'utilisateur et a renvoyé l'ID utilisateur.
En utilisant des procédures stockées, un traitement efficace des données et une logique métier peuvent être effectués dans MySQL. Cet article décrit comment créer, exécuter et utiliser différents types de procédures stockées. L'utilisation de procédures stockées peut améliorer considérablement les performances et l'efficacité de la base de données MySQL et fournir un meilleur support à notre activité.
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!