mysql存儲過程單步調試
mysql調試存儲過程具體方法:
在你的存儲過程中加入如下語句:
SELECT
變數1,變數2;
然後用mysql自帶的cmd程序進入mysql>
下。
call
你的存儲過程名(輸入參數1,@輸出參數);(注:這里幫助下新同學,如果你的存儲過程有輸出變數,那麼在這里只需要加
@
然後跟任意變數名即可);
即可發現你的變數值被列印到了cmd下
Ⅱ 有人用dbForge Studio for MySQL調試存儲過程的嗎的相關推薦
dbForge很好用, 先看你的版本是否支持調試,dbForge按照銷售的價格免費版是沒有調試功能的。
開始調試F11, 填入你的存儲過程的數據,然後單步執行都是F11, 用滑鼠可以看內存變數數值,也可以用watch看具體的變數名稱。 F9在相應行設置斷點。
Ⅲ plsql中如何單步調試帶參數的存儲過程
你test的時候需 在test下面的inmonth裡面輸入一個值!
比如
create procere c(a in varchar2,b out varchar2)
is
begin
b:=a;
end;
test的時候
需要在a 的value中輸入一個值!
b不用輸入,在執行完procere後b便會有一個值(a)
Ⅳ [MYSQL]怎麼調試存儲過程或調試方法
MYSQL 5.0以前是不支持存儲過程的,當然如果你用了5以後的版本,自然可以了。
調試,是沒辦法的,只能看結果。
Ⅳ MYSQL 存儲過程如何取得一個表的查詢結果
假設A表有3個欄位,ID, DATA1,DATA2
簡單的話可以不使用存儲過程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)
如果你的應用比較復雜,在嵌套中還有復雜的運算,存儲過程可以如下例子:
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的篩選范圍。 後面一個select直接返回一個表
直接用SQL和使用存儲過程各有利弊,存儲過程在你使用大量查詢及SQL運算的時候效率很高,而且存儲過程一旦寫入資料庫會被自動編譯運行速度比較快,而SQL是每次執行都需要被編譯一次的。但是存儲過程的調試比較麻煩,不像你使用編程語言和SQL的時候可以單步調試。而且如果沒有熟練掌握存儲過程的效率優化情況下,使用存儲過程可能比使用SQL更慢。
Ⅵ MySQL的存儲過程怎樣進行單步調試
好像沒有調試的功能,不過你可以用select語句輸出一些變數的信息
Ⅶ navicat 怎樣調試mysql存儲過程
navicat 怎樣調試mysql存儲過程
使用Navicat for MySQL工具創建存儲過程步驟:
1. 新建函數(選擇函數標簽 -> 點擊新建函數):
2、輸入函數的參數個數、參數名、參數類型等:
3、編寫存儲過程:
4、保存(請輸入合法名稱):
5、運行存儲過程(在結果1,2,3...中可以查詢輸出信息):
Ⅷ mysql 存儲過程怎麼調用
php調用mysql存儲過程和函數的方法
存儲過程和函數是MySql5.0剛剛引入的。關於這方面的操作在PHP裡面沒有直接的支持。但是由於Mysql PHP API的設計,使得我們可以在以前的PHP版本中的mysql php api中支持存儲過程和函數的調用。
在php中調用存儲過程和函數。
1。調用存儲過程的方法。
a。如果存儲過程有 IN/INOUT參數,聲明一個變數,輸入參數給存儲過程,該變數是一對,
一個php變數(也可以不必,只是沒有php變數時,沒有辦法進行動態輸入),一個Mysql
變數。
b。如果存儲過程有OUT變數,聲明一個Mysql變數。
mysql變數的聲明比較特殊,必須讓mysql伺服器知道此變數的存在,其實也就是執行一條mysql語句。
入set @mysqlvar=$phpvar ;
c。使用mysql_query()/mysql_db_query()執行mysql 變數聲明語句。
mysql_query("set @mysqlvar=$pbpvar");
這樣,在mysql伺服器裡面就有一個變數,@mysqlar。如果是IN參數,那麼其值可以由phpar傳入。
d。 如果是存儲過程。
1。執行 call procere()語句。
也就是mysql_query("call proceer([var1]...)");
2. 如果有返回值,執行select @ar,返回執行結果。
mysql_query("select @var)"
接下來的操作就和php執行一般的mysql語句一樣了。可以通過mydql_fetch_row()等函數獲得結果。
如果時函數。 直接執行 select function() 就可以了。
$host="localhost";
$user="root";
$password="11212";
$db="samp_db";
$dblink=mysql_connect($host,$user,$password)
or die("can't connect to mysql");
mysql_select_db($db,$dblink)
or die("can't select samp_db");
$res=mysql_query("set @a=$password",$dblink);
$res=mysql_query("call aa(@a)",$dblink);
$res=mysql_query("select @a",$dblink);
$row=mysql_fetch_row($res);
echo $row[0];
Ⅸ 為什麼Mysql會垃圾到連存儲過程的單步調試功能都沒有
mySQL是一個比較成熟的中小型資料庫,用戶非常廣泛,其中也不乏知名的大公司。當然,每種東西都會有缺點,mysql也不例外,但是把它說成是垃圾,這一點無論是從技術上還是從感情上恐怕都是說不通的,更何況您的理由竟然是「phpmyadmin又難用界面難看死了,還有中文亂碼」,不過這也正好說明了您對於mySQL的不了解(確切地說應該是「mySQL的文盲」,因為以上兩個問題都正是您對於mySQL的無知才出現的,就算您說的對——它長得難看,那也可以換嗎,mySQL的管理工具多得是了),我想通過您的進一步學習,您應該會喜歡上它的。