新聞中心
MySQL 5.0的存儲(chǔ)過程,保存在什么地方?
mysql 的存儲(chǔ)過程在 mysql.proc表里。 只上傳frm,MYI,MYD不能上傳procedure。你可以mysqldump --table mysql proc proc.sql -uroot -p 之后再到你的虛擬機(jī)中 source 目錄\proc.sql
目前成都創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、臨汾網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
mysql 存儲(chǔ)過程存在什么地方
如果想查看存儲(chǔ)過程的話:
show procedure status;
想看存儲(chǔ)過程代碼:
show create procedure procedure_name;
存儲(chǔ)過程存放在infomation_schema.ROUTINES表內(nèi)。
mysql中怎樣查詢表中的儲(chǔ)存過程
假設(shè)A表有3個(gè)字段,ID, DATA1,DATA2
簡單的話可以不使用存儲(chǔ)過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)
如果你的應(yīng)用比較復(fù)雜,在嵌套中還有復(fù)雜的運(yùn)算,存儲(chǔ)過程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) 0;
END
注: in_start, in_end是DATA1的篩選范圍。 后面一個(gè)select直接返回一個(gè)表
直接用SQL和使用存儲(chǔ)過程各有利弊,存儲(chǔ)過程在你使用大量查詢及SQL運(yùn)算的時(shí)候效率很高,而且存儲(chǔ)過程一旦寫入數(shù)據(jù)庫會(huì)被自動(dòng)編譯運(yùn)行速度比較快,而SQL是每次執(zhí)行都需要被編譯一次的。但是存儲(chǔ)過程的調(diào)試比較麻煩,不像你使用編程語言和SQL的時(shí)候可以單步調(diào)試。而且如果沒有熟練掌握存儲(chǔ)過程的效率優(yōu)化情況下,使用存儲(chǔ)過程可能比使用SQL更慢。
mysql 使用存儲(chǔ)過程 循環(huán)查找數(shù)據(jù)
delimiter $$
mysql
mysql CREATE PROCEDURE myProc() //創(chuàng)建while循環(huán)的存儲(chǔ)過程 if分支語句示例
- BEGIN
-
- DECLARE i int;
- SET i=1;
- loop1: WHILE i=10 DO
- IF MOD(i,2)0 THEN /*Even number - try again*/
- SELECT CONCAT(i," is an odd number");
- END IF;
- SET i=i+1;
- END WHILE loop1;
- END$$
Query OK, 0 rows affected (0.00 sec)
這種也可以
網(wǎng)頁題目:mysql存儲(chǔ)過程怎么找 mysql存儲(chǔ)過程查詢語句寫法
文章路徑:http://fisionsoft.com.cn/article/ddigjpg.html