1. 程式人生 > >從頭開始學MySQL-------儲存過程與儲存函式(4)

從頭開始學MySQL-------儲存過程與儲存函式(4)

儲存過程與儲存函式的補充

MySQL的儲存過程與儲存函式有什麼區別?

        儲存函式只能通過return語句返回單個值或者表物件。

        儲存過程不能用return,但是可以使用多個out引數返回多個值。

儲存過程如何修改程式碼?

        雖然提供了ALTER PROCEDURE sp_name [儲存特性],但是隻能修改儲存過程的儲存特性,不能修改SQL。需要刪除並重新建立。

儲存過程中能呼叫其它儲存過程嗎?

        可以在儲存過程中的SQL中通過CALL呼叫其它儲存過程,但是不能用DROP刪除其它儲存過程。

IN、OUT等引數與欄位名相同了怎麼辦?

        需要將它們區別開來,否則將會出現錯誤。

儲存過程的IN引數可能是中文怎麼辦?

        在定義儲存過程的時候,加上character set gbk。

DELIMITER //
CREATE PROCEDURE getAddressByName(IN u_name VARCHAR(50) character set gbk , OUT address VARCHAR(50))
BEGIN
     SQL;
END//
DELIMITER ;