日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 参数用法的全部內容,希望文章能夠幫你解決所遇到的問題。

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