Maison > base de données > tutoriel mysql > le corps du texte

exécution d'une procédure stockée mysql

WBOY
Libérer: 2023-05-08 16:58:38
original
1977 Les gens l'ont consulté

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.

  1. Création d'une procédure stockée

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;
Copier après la connexion

Où :

  • procedure_name : Le nom de la procédure stockée.
  • IN/OUT/INOUT : type de paramètre de procédure stockée, IN représente les paramètres d'entrée, OUT représente les paramètres de sortie et INOUT représente les paramètres d'entrée et de sortie.
  • parameter_name : Le nom du paramètre.
  • data_type : Le type de données du paramètre, qui peut être n'importe quel type de données pris en charge par MySQL.
  • Corps de la procédure stockée : le bloc de code que la procédure stockée exécute réellement

Par exemple, voici un exemple simple de procédure stockée :

CREATE PROCEDURE hello_world()
BEGIN
    SELECT 'Hello, World!';
END;
Copier après la connexion
  1. Exécuter une procédure stockée

Vous devez utiliser l'instruction "CALL" pour exécuter une procédure stockée. La syntaxe est la suivante :

CALL procedure_name([parameter_value, ...]);
Copier après la connexion

Où :

  • procedure_name : Le nom de la procédure stockée à exécuter.
  • parameter_value : La valeur du paramètre à transmettre à la procédure stockée.

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();
Copier après la connexion

Le résultat de l'exécution est le suivant :

+-------------+
| Hello, World! |
+-------------+
| Hello, World! |
+-------------+
1 row in set (0.00 sec)
Copier après la connexion
  1. L'utilisation du paramètre IN

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;
Copier après la connexion

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);
Copier après la connexion

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)
Copier après la connexion
  1. Utilisation des paramètres OUT

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;
Copier après la connexion

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;
Copier après la connexion

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)
Copier après la connexion
  1. Utilisation des paramètres INOUT

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;
Copier après la connexion

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;
Copier après la connexion

Le résultat de l'exécution est le suivant :

+---------+
| @user_id |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal