Maison  >  Article  >  base de données  >  Explication détaillée des procédures stockées de la base de données MySQL

Explication détaillée des procédures stockées de la base de données MySQL

PHPz
PHPzoriginal
2023-04-17 16:38:161351parcourir

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

  1. Création de procédures stockées

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:参数列表,可以为空。
  • BEGINEND:SQL语句的开始和结束符。
  1. 存储过程的参数

存储过程可以包含0个或多个参数,语法如下:

CREATE PROCEDURE procedure_name (IN|OUT|INOUT parameter_name data_type)

分别表示传入、传出和传入传出参数类型,parameter_namedata_type

parameter_list : Liste de paramètres, peut être vide.
  1. 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;
représente respectivement les types de paramètres entrants, sortants et entrants et sortants, 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);
  1. 3. L'appel de procédures stockées MySQL
L'utilisation de procédures stockées peut implémenter une logique métier complexe dans MySQL. Pour appeler une procédure stockée, vous pouvez utiliser l'instruction suivante :
    CALL get_employee(1);
  1. Par exemple, lorsque vous utilisez la procédure stockée créée ci-dessus, nous pouvons utiliser l'instruction suivante pour appeler :
  2. 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;
4. Exemple de procédure stockée MySQL

Regardons. un exemple pratique ci-dessous pour mettre en œuvre une opération de transfert de compte.

Créer une procédure stockée de transfert

🎜
CALL transfer(1, 2, 100);
🎜🎜Appeler la procédure stockée🎜🎜🎜Nous pouvons utiliser l'instruction suivante pour appeler la procédure stockée :🎜rrreee🎜Transférer 100 yuans de l'utilisateur avec l'ID de compte 1 à l'utilisateur avec le compte ID 2. 🎜🎜Ce qui précède représente les opérations de base des procédures stockées de base de données MySQL. Bien sûr, dans le développement réel, il y aura plus de scénarios dans lesquels des procédures stockées doivent être utilisées, et les développeurs doivent les concevoir et les appeler en fonction des besoins réels. 🎜

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!

Déclaration:
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