MySQL PREPARE語句用于在存儲過程中動態準備和執行SQL語句。它的語法如下:
PREPARE statement_name FROM sql_statement;
其中,statement_name
是一個用戶定義的標識符,用于引用準備好的語句;sql_statement
是要準備的SQL語句。
PREPARE語句通常與EXECUTE語句一起使用,以執行準備好的語句。EXECUTE語句的語法如下:
EXECUTE statement_name [USING @var1 [, @var2, ...]];
其中,statement_name
是之前準備好的語句名稱;@var1, @var2, ...
是可選參數,用于傳遞給準備好的語句的參數。
以下是一個示例,展示了如何在存儲過程中使用PREPARE和EXECUTE語句:
DELIMITER //
CREATE PROCEDURE dynamic_query()
BEGIN
DECLARE query VARCHAR(200);
DECLARE param INT;
SET param = 1;
SET query = 'SELECT * FROM my_table WHERE id = ?';
PREPARE stmt FROM query;
EXECUTE stmt USING param;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
在上述示例中,存儲過程dynamic_query
定義了一個參數param
和一個查詢語句query
。通過PREPARE語句,存儲過程將查詢語句準備好,并通過EXECUTE語句執行它。最后,使用DEALLOCATE PREPARE語句釋放已準備的語句。
注意,PREPARE語句只能在存儲過程中使用,不能在普通的SQL語句中使用。