首頁 > 資料庫 > mysql教程 > 如何在MySQL預存程序中使用動態SQL?

如何在MySQL預存程序中使用動態SQL?

Mary-Kate Olsen
發布: 2024-12-21 17:50:09
原創
479 人瀏覽過

How Can I Use Dynamic SQL in MySQL Stored Procedures?

在 MySQL 預存程序中使用動態 SQL

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板