mysql -存储过程的学习
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 1858 多人背包
- 下一篇: linux cmake编译源码,linu