日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MySQL 存储过程传参之in, out, inout 参数用法

發布時間:2023/11/27 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 存储过程传参之in, out, inout 参数用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
存儲過程傳參:存儲過程的括號里,可以聲明參數。 語法是 create procedure p([in/out/inout] 參數名 ?參數類型 ..) in :給參數傳入值,定義的參數就得到了值 out:模式定義的參數只能在過程體內部賦值,表示該參數可以將某個值傳遞回調用他的過程(在存儲過程內部,該參數初始值為 null,無論調用者是否給存儲過程參數設置值) inout:調用者還可以通過 inout 參數傳遞值給存儲過程,也可以從存儲過程內部傳值給調用者
如果僅僅想把數據傳給 MySQL 存儲過程,那就使用“in” 類型參數; 如果僅僅從 MySQL 存儲過程返回值,那就使用“out” 類型參數; 如果需要把數據傳給 MySQL 存儲過程,還要經過一些計算后再傳回給我們,此時,要使用“inout” 類型參數。?
  1. DELIMITER?$$??
  2. CREATE?PROCEDURE?p1(IN?num?INT)??
  3. BEGIN??
  4. ??DECLARE?i?INT?DEFAULT?0;??
  5. ??DECLARE?total?INT?DEFAULT?0;??
  6. ??WHILE?i<=num?DO??
  7. ????SET?total?:=?i?+?total;??
  8. ????SET?i?:=?i+1;??
  9. ??END?WHILE;??
  10. ??SELECT?total;??
  11. END$$??


存儲過程傳參 out [sql] view plaincopy
  1. CREATE?PROCEDURE?p2(OUT?num?INT)??
  2. BEGIN??
  3. ?SELECT?num?AS?num_1;??
  4. ?IF?(num?IS?NOT?NULL)?THEN??
  5. ?SET?num?=?num?+?1;??
  6. ?SELECT?num?AS?num_2;??
  7. ?ELSE??
  8. ?SELECT?1?INTO?num;??
  9. ?END?IF;??
  10. ?SELECT?num?AS?num_3;??
  11. END$$??
  12. SET?@num?=?10$$??
  13. CALL?p2(@num)$$??
  14. SELECT?@num?AS?num_out$$??


  1. CREATE?PROCEDURE?p3(INOUT?age?INT)??
  2. BEGIN??
  3. ??SET?age?:=?age?+?20;??
  4. END$$??
  5. set?@currage?=18$$??
  6. call?p3(@currage)$$??
  7. select?@currage$$??

轉載于:https://www.cnblogs.com/kabi/p/5903491.html

總結

以上是生活随笔為你收集整理的MySQL 存储过程传参之in, out, inout 参数用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。