Cet article vous apporte des connaissances pertinentes sur mysql Il présente principalement l'utilisation et la description des paramètres de procédure stockée MySQL. Il existe trois types de paramètres pour les procédures stockées MySQL : IN, OUT et INOUT. . J'espère que cela aidera tout le monde.
Apprentissage recommandé : Tutoriel vidéo MySQL
Il existe trois types de paramètres pour les procédures stockées MySQL :
IN
IN
OUT
INOUT
OUT code>
INOUT
Paramètres qui transmettent des données à la procédure stockée lors de l'appel de la procédure stockée (la procédure stockée appelée doit avoir valeurs réelles (Variables ou valeurs littérales)Remarque sur les détails : la création de procédure stockée suivante signalera une erreur. Son type et sa longueur de type
doivent être cohérents avec le type et la longueur de type duchamp de table
-- 创建一个存储过程:添加一个员工信息 DELIMITER $$ CREATE PROCEDURE procedure_test4(IN `p_name` VARCHAR,IN `p_call` VARCHAR) BEGIN INSERT INTO employees(`name`,`call`) VALUES(`p_name`,`p_call`); END $$
Écriture correcte
-- 创建一个存储过程:添加一个员工信息 DELIMITER $$ CREATE PROCEDURE procedure_test4(IN `p_name` VARCHAR(64),IN `p_call` VARCHAR(64)) BEGIN INSERT INTO employees(`name`,`call`) VALUES(`p_name`,`p_call`); END $$
Maintenant, testons si nous pouvons appeler la procédure stockée et y ajouter des données
Regardons d'abord les données originales de la table
C tout la procédure stockée
CALL procedure_test4('李四','321321')
Regardons à nouveau les résultats
Renvoie les données générées dans la procédure stockée à l'appelant, ce qui équivaut à la valeur de retour de la méthode Java, mais la différence est qu'il s'agit d'une procédure stockée. Il peut y avoir plusieurs paramètres de sortie
Exemple :
-- 创建一个存储过程:根据id查询出该员工姓名 DELIMITER $$ CREATE PROCEDURE procedure_test5(IN `p_id` INT(64),OUT `p_name` VARCHAR(64)) BEGIN SELECT `name` INTO `p_name` FROM employees WHERE id=`p_id`; END $$
Aucun problème pour créer, puis appeler et tester
SET @e_name='' CALL procedure_test5('2',@e_name) SELECT @e_name FROM DUAL
Paramètres d'entrée et de sortie (INOUT)
-- INOUT(输入输出参数) DELIMITER $$ CREATE PROCEDURE procedure_test6(INOUT str VARCHAR(64)) BEGIN -- 把你传进来的值作为条件,查询出的结果再重新赋值给 str 返回出去 -- 这里的 str 既当输入参数,也当输出参数 SELECT `name` INTO str FROM employees WHERE id=str; END $$
Aucun problème de création, Ensuite, testez-le
SET @e_name='2' CALL procedure_test6(@e_name) SELECT @e_name FROM DUAL
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!