Maison > Article > base de données > Comment écrire une procédure stockée MySQL
La procédure stockée MySQL est une collection d'instructions SQL. Par exemple, nous pouvons parfois avoir besoin d'une grande série d'instructions SQL, ou nous devons définir les valeurs de certaines variables pendant le processus d'écriture des instructions SQL. , nous devons absolument écrire une procédure stockée. Voyons comment créer une procédure stockée.
Format de syntaxe :
Vous pouvez utiliser l'instruction CREATE PROCEDURE pour créer une procédure stockée.
Le format de la syntaxe est le suivant :
CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体> [过程参数[,…] ] 格式 [ IN | OUT | INOUT ] <参数名> <类型>
La description de la syntaxe est la suivante :
1) Nom de la procédure
Le nom de la procédure stockée, créée par défaut dans la base de données courante. Si vous devez créer une procédure stockée dans une base de données spécifique, ajoutez au début le nom de la base de données, db_name.sp_name. Il convient de noter que le nom doit éviter de choisir le même nom que la fonction intégrée de MySQL, sinon une erreur se produira.
2) Paramètres du processus
La liste des paramètres de la procédure stockée. Parmi eux,
Les procédures stockées MySQL prennent en charge trois types de paramètres, à savoir les paramètres d'entrée, les paramètres de sortie et les paramètres d'entrée/sortie, qui sont identifiés respectivement par les trois mots-clés IN, OUT et INOUT. Parmi eux, les paramètres d'entrée peuvent être transmis à une procédure stockée, les paramètres de sortie sont utilisés lorsque la procédure stockée doit renvoyer un résultat d'opération, et les paramètres d'entrée/sortie peuvent servir à la fois de paramètres d'entrée et de paramètres de sortie. Il convient de noter que le nom du paramètre ne doit pas être le même que le nom de la colonne de la table de données. Sinon, même si aucun message d'erreur ne sera renvoyé, l'instruction SQL de la procédure stockée traitera le nom du paramètre comme un nom de colonne, ce qui entraînera une erreur. des résultats imprévisibles.
3) Corps de la procédure
La partie principale de la procédure stockée, également appelée corps de la procédure stockée, contient les instructions SQL qui doivent être exécutées lorsque la procédure est appelée . Cette section commence par le mot-clé BEGIN et se termine par le mot-clé END. S'il n'y a qu'une seule instruction SQL dans le corps de la procédure stockée, l'indicateur BEGIN-END peut être omis.
Dans la création de procédures stockées, une commande MySQL très importante est souvent utilisée, à savoir la commande DELIMITER. Surtout pour les utilisateurs qui exploitent la base de données MySQL via la ligne de commande, ils doivent apprendre à utiliser cette commande.
Dans MySQL, lorsque le serveur traite des instructions SQL, le point-virgule est utilisé par défaut comme marque de fin d'instruction. Cependant, lors de la création d'une procédure stockée, le corps de la procédure stockée peut contenir plusieurs instructions SQL. Si ces instructions SQL utilisent toujours un point-virgule comme caractère de fin d'instruction, le serveur MySQL se terminera par la première instruction SQL rencontrée lors du traitement. le terminateur de l'ensemble du programme et ne traite plus les instructions SQL suivantes dans le corps de la procédure stockée. Cela ne fonctionne évidemment pas. Pour résoudre ce problème, vous pouvez généralement utiliser la commande DELIMITER pour modifier la commande de fin en un autre caractère.
Le format de syntaxe est le suivant :
DELIMITER $$
La description de la syntaxe est la suivante : $$ est un terminateur défini par l'utilisateur, généralement ce symbole peut être des symboles spéciaux , comme deux " ?" ou deux "¥", etc. Lorsque vous utilisez la commande DELIMITER, vous devez éviter d'utiliser le caractère barre oblique inverse "" car il s'agit d'un caractère d'échappement MySQL.
Entrez l'instruction SQL suivante dans le client de ligne de commande MySQL.
mysql > DELIMITER ??
Après avoir exécuté avec succès cette instruction SQL, la marque de fin de toute commande, instruction ou programme sera remplacée par deux points d'interrogation "??".
Si vous souhaitez revenir au point-virgule par défaut ";" comme marque de fin, saisissez l'instruction suivante dans le client de ligne de commande MySQL :
mysql > DELIMITER ;
Remarque : DELIMITER et point-virgule ";" Il doit y avoir un espace entre eux. Lors de la création d'une procédure stockée, vous devez disposer de l'autorisation CREATE ROUTINE. Vous pouvez utiliser la commande SHOW PROCEDURE STATUS pour afficher les procédures stockées existant dans la base de données. Pour afficher des informations spécifiques sur une procédure stockée, vous pouvez utiliser SHOW CREATE PROCEDURE
Créer une procédure stockée sans paramètres
La fonction de la procédure stockée est d'interroger les informations sur les notes des étudiants à partir de la table d'informations sur les notes des étudiants. L'instruction SQL d'entrée et le processus d'exécution. sont les suivants.
mysql> DELIMITER // mysql> CREATE PROCEDURE ShowStuScore() -> BEGIN -> SELECT * FROM tb_students_score; -> END // Query OK, 0 rows affected (0.09 sec)
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!