1、查看存儲過程mysql
-- 顯示全部數據庫中全部存儲過程的基本信息,如所屬數據庫、存儲過程名、建立時間等 show procedure status; -- 顯示指定數據庫中全部存儲過程的基本信息,如 Demo 數據庫 show procedure status where db='Demo';
2、建立存儲過程sql
-- 定義結束符爲「$$」,mysql默認結束符爲「;」 -- 意思是告訴mysql解釋器,該段命令是否已經結束了,即標識一段命令起始和結束 delimiter $$ -- 建立存儲過程 -- sp_char_split_inser:存儲過程名稱 -- strs:存儲過程參數名稱 -- in:表示該參數爲輸入參數;out:表示該參數爲輸出參數;inout:表示該參數爲輸入輸出參數。不寫時默認爲in,即輸入參數。 create procedure sp_char_split_inser(in strs text) begin declare i int default 0; declare leng int default 0; declare word char(1); -- 判斷字符串是否爲空或空字符串 if(strs is not null && strs <> '') then -- 獲取字符串長度 set leng = char_length(strs); -- 循環 while i < leng do -- 獲取第一個字符 set word=left(strs,1); if(word is not null && word <> '') then -- 判斷該條數據是否存在 if not exists(select 1 from demo.charinfo where Hanzi=word limit 1) then -- 插入數據 insert into demo.charinfo(Hanzi) values(word); end if; end if; -- 截取除第一個字符以外的全部字符 set strs=substring(strs,2); set i=i+1; end while; end if; end; -- 命令結束 $$ delimiter ;
3、調用存儲過程數據庫
-- 調用存儲過程 set @s='測試文字'; call sp_char_split_inser(@s); call sp_char_split_inser('測試一下');
4、刪除存儲過程測試
-- 刪除存儲過程 drop procedure sp_char_split_inser; drop procedure if exists sp_char_split_inser;