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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql -存储过程的学习

發(fā)布時間:2025/3/18 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql -存储过程的学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

1.首先交代數(shù)據(jù)庫現(xiàn)有情況:

mysql> show tables; +-----------------------+ | Tables_in_my_leetcode | +-----------------------+ | user | +-----------------------+ 1 row in set (0.00 sec)mysql> select * from user; +------+----------+ | id | name | +------+----------+ | 1 | guanguan | | 2 | honey | | 3 | gholly | +------+----------+ 3 rows in set (0.00 sec)mysql>

?2.使用簡單查詢來學(xué)習(xí)創(chuàng)建存儲過程:創(chuàng)建存儲過程,來實現(xiàn)對user表的名字的簡單查詢;

DELIMITER $$USE `my_leetcode`$$ -- 使用my_leetcode庫DROP PROCEDURE IF EXISTS `proc_emt`$$CREATE PROCEDURE `proc_emt`()BEGINselect name from user; END ; END$$ DELIMITER $$

執(zhí)行完存儲過程后的調(diào)用存儲過程結(jié)果為:

call proc_emt; #調(diào)用存儲過程drop procedure proc_emt; #刪除存儲過程

3.查看存儲過程狀態(tài):

show procedure status; --查看服務(wù)器所有的存儲過程狀態(tài)show procedure status like 'proc_emt'; --查看proc_emt存儲過程的狀態(tài)

4.使用游標(biāo)動態(tài)創(chuàng)建存儲過程

?以user表中的name值為參數(shù)動態(tài)創(chuàng)建test_${name}表

DELIMITER $$ USE `my_leetcode`$$DROP PROCEDURE IF EXISTS `proc_test1`$$CREATE PROCEDURE `proc_test1` () BEGINDECLARE var VARCHAR (20) ; --聲明一個參數(shù)變量DECLARE no_more_departments INTEGER DEFAULT 0 ; --聲明游標(biāo)值DECLARE C_RESULT CURSOR FOR --定義游標(biāo)名字為C_RESULTSELECT name FROM user ;DECLARE CONTINUE HANDLER FOR NOT FOUND --聲明當(dāng)游標(biāo)遍歷完全部記錄后將標(biāo)志變量置成某個值SET no_more_departments = 1 ; OPEN C_RESULT ; --打開之前定義的游標(biāo)REPEAT --循環(huán)語句的關(guān)鍵詞FETCH C_RESULT INTO var ; --取出每條記錄并賦值給相關(guān)變量varSET @strsql = CONCAT("create table `test_",var,"` (id int,app char)" --動態(tài)sql ) ;PREPARE t FROM @strsql ; --預(yù)處理需要執(zhí)行的動態(tài)SQL,其中t是一個變量EXECUTE t ; --執(zhí)行SQL語句DEALLOCATE PREPARE t ; --釋放掉預(yù)處理段UNTIL no_more_departments --循環(huán)語句結(jié)束ENDREPEAT; -- 循環(huán)語句結(jié)束 CLOSE C_RESULT ;-- 關(guān)閉游標(biāo) END$$ DELIMITER $$;

存儲過程創(chuàng)建后的結(jié)果為:

此時表已經(jīng)創(chuàng)建完畢

?

轉(zhuǎn)載于:https://my.oschina.net/u/2263272/blog/1550091

總結(jié)

以上是生活随笔為你收集整理的mysql -存储过程的学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。