預存程序建立以後,使用者可以透過SHOW STATUS語句來查看預存程序的狀態,也可以透過SHOW CREATE語句來查看預存程序的定義。使用者也可以透過查詢information_schema資料庫下的Routines表來查看預存程序的資訊。本節將詳細講解查看預存程序的狀態與定義的方法。
在MySQL中,可以透過SHOW STATUS語句。其基本語法形式如下:
SHOW PROCEDURE STATUS [ like ‘pattern'] ;
參數PROCEDURE表示查詢預存程序;
參數LIKE 'pattern'用來匹配存儲過程的名稱。
show procedure status like 'proc%';
在MySQL中,可以透過SHOW CREATE語句查看預存程序的狀態,語法形式如下:
SHOW CREATE PROCEDURE proc_name ;|\G
參數PROCEDURE表示查詢預存程序;
參數proc_name表示存儲過程的名稱。
Ⅰ使用分號結束
show create procedure proc_age;
Ⅱ使反斜線結束(使用反斜線條理更清晰)
Routines table in the information_schema database stores information about stored procedures and functions.。可以透過查詢該表的記錄來查詢預存程序和函數的資訊。其基本語法形式如下:
SELECT * FROM information_schema.Routines Where ROUTINE_NAME = ‘proc_name';
欄位ROUTINE_NAME是Routines 儲存儲存程序和函數的欄位名稱;
參數proc_name表示預存程序或函數的名稱。
select * from information_schema.Routines where routine_name = 'proc_age';
或單獨查看預存程序的語句
select routine_definition from information_schema.Routines where routine_name = 'proc_age';
在MySQL中刪除預存程序透過SQL語句DROP完成:
DROP PROCEDURE proc_name;
關鍵字DROP PROCEDURE用來表示實作刪除預存程序;參數proc_name表示所要刪除的預存程序名稱。
例如
#儘管MySQL資料庫支援對預存程序的修改,但我們依舊不可以修改存儲過程中的內容,也不能修改預存程序的名稱。如果想要修改預存程序的內容,只能刪除原有的預存程序,然後再重新寫一個預存程序;如果想要修改預存程序的名稱,只能刪除原有的預存程序,再重新建立一個新的儲存過程,並且把原有預存程序的內容寫入到新的預存程序名稱裡面。
MySQL只支援修改預存程序的一些特性,修改指令SQL範例如下:
alter procedure 【儲存過程名稱】 【儲存程序特性】;
#可以寫入的預存程序特性主要有以下6種:
2、no sql。表示子程序不包含SQL語句。
3、reads sql data。表示子程式中包含讀取資料的SQL語句。
4、modifies sql data。表示子程序中包含寫入資料的SQL語句。
重新表達:可使用sql security define或sql security invoke。如果是define,則表示該預存程序只有定義者本身才可以執行,如果是invoke,則表示呼叫者可以執行。
6、comment 【註釋資訊】。表示向該預存程序新增註釋資訊。
以上是MySQL預存程序的檢視與刪除方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!