在 MySQL 5.0.13 及更高版本中,可在預存程序中實作動態 SQL。
建立動態 SQL 語句:
建立動態 SQL語句中,CONCAT() 函數用於連接字串並動態建立 SQL 語句。以下是範例:
SET @s = CONCAT('SELECT ',col,' FROM ',tbl );
在上面的範例中,@s 會包含動態SQL 語句:
SELECT col FROM tbl
準備和執行動態語句:
一旦建構了動態SQL語句,就需要準備與已執行:
PREPARE stmt FROM @s; EXECUTE stmt;
釋放預備語句:
執行後,必須釋放預準備語句以釋放資源:
DEALLOCATE PREPARE stmt;
限制:
支援動態 SQL預存程序,但不在函數或觸發器中。
範例:
以下預存程序示範了動態 SQL:
delimiter // CREATE PROCEDURE dynamic(IN tbl CHAR(64), IN col CHAR(64)) BEGIN SET @s = CONCAT('SELECT ',col,' FROM ',tbl ); PREPARE stmt FROM @s; EXECUTE stmt; DEALLOCATE PREPARE stmt; END // delimiter ;
以上是如何在MySQL預存程序中使用動態SQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!