預存程序與函數是預先編譯並儲存在資料庫中的 SQL 陳述式集合。呼叫它們可簡化應用程式開發、減少網路傳輸、提升資料庫處理效能。
CREATE PROCEDURE sp_name ([參數列表])
[特性 ...]
BEGIN
-- SQL 陳述式
END;
CREATE FUNCTION fn_name ([參數列表])
RETURNS 資料型別
[特性 ...]
BEGIN
-- SQL 陳述式
RETURN 值;
END;
CALL sp_name([引數]);
SELECT fn_name([引數]);
DELIMITER $$
CREATE PROCEDURE sp_get_site(IN p_url INT, IN p_sitename INT, OUT p_infodesc INT)
READS SQL DATA
BEGIN
SELECT * FROM su WHERE url = p_sitename AND domain = 'www.111cn.net';
SELECT FOUND_ROWS() INTO p_infodesc;
END $$
DELIMITER ;
LOAD DATA INFILE。NOT DETERMINISTIC,若結果確定可宣告 DETERMINISTIC 以利最佳化。DELIMITER 變更分隔符避免衝突。ALTER PROCEDURE sp_name [特性 ...];
DROP PROCEDURE [IF EXISTS] sp_name;
DROP FUNCTION [IF EXISTS] fn_name;
需具備 ALTER ROUTINE 權限。