首頁 >資料庫 >mysql教程 >歸納整理MySQL預存程序參數的用法及說明

歸納整理MySQL預存程序參數的用法及說明

WBOY
WBOY轉載
2022-08-18 17:53:232203瀏覽

這篇文章為大家帶來了關於mysql的相關知識,主要介紹了MySQL預存程序參數的用法及說明,MySQL預存程序的參數共有三種:IN、OUT 、INOUT,下面一起來看一下,希望對大家有幫助。

歸納整理MySQL預存程序參數的用法及說明

推薦學習:mysql影片教學

#MySQL預存程序的參數

MySQL預存程序的參數共有三種:

  • IN
  • OUT
  • INOUT

歸納整理MySQL預存程序參數的用法及說明

#輸入參數

歸納整理MySQL預存程序參數的用法及說明

輸入參數(IN):在呼叫儲存過程中傳遞資料給預存程序的參數(在呼叫的預存程序必須具有實際值的變數或字面值)

細節注意:下面的預存程序建立會報錯,他的

類型以及類型長度

需要和建立歸納整理MySQL預存程序參數的用法及說明表格欄位的類型和類型長度一致

-- 创建一个存储过程:添加一个员工信息
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 $$

正確寫法歸納整理MySQL預存程序參數的用法及說明

-- 创建一个存储过程:添加一个员工信息
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 $$

歸納整理MySQL預存程序參數的用法及說明

現在來測試一下是否可以調用預存程序並且添加資料進去

    先看一下表原來的資料
##呼叫存儲過程

CALL procedure_test4('李四','321321')

再來看一下結果

##輸出參數

輸出參數(OUT):

將儲存過程中產生的資料傳回給呼叫者,相當於Java方法的回傳值,但不同的是一個預存程序可以有多個輸出參數

範例:

-- 创建一个存储过程:根据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 $$

#建立沒問題,接下來呼叫測試一下

SET @e_name=''
CALL procedure_test5('2',@e_name)
SELECT @e_name FROM DUAL
### #########輸入輸出參數(INOUT)###
-- INOUT(输入输出参数)
DELIMITER $$
CREATE PROCEDURE procedure_test6(INOUT str VARCHAR(64))
BEGIN
  -- 把你传进来的值作为条件,查询出的结果再重新赋值给 str 返回出去
  -- 这里的 str 既当输入参数,也当输出参数
  SELECT `name` INTO str FROM employees WHERE id=str;
END $$
#############建立沒問題,接下來測試一下###
SET @e_name='2'
CALL procedure_test6(@e_name)
SELECT @e_name FROM DUAL
####### #####也是沒問題的,但在實際開發中INOUT 建議少用,原因:程式碼的可讀性會變差######推薦學習:###mysql影片教學##### #

以上是歸納整理MySQL預存程序參數的用法及說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除