如何從預存程序中動態指定的表中檢索資料?

Patricia Arquette
發布: 2024-11-05 22:50:03
原創
937 人瀏覽過

How to Retrieve Data from Dynamically Specified Tables in Stored Procedures?

儲存過程函數中的動態表名稱

問題陳述:

問題陳述:

問題陳述:

是建立目標一個從表中檢索值的預存程序函數,其中表名稱作為參數動態提供。但是,嘗試在函數內動態產生 SQL 語句會導致「不允許動態 SQL…」錯誤。需求是找到一種方法來克服這個限制並達到預期的結果。

CREATE PROCEDURE getName (IN tableName VARCHAR(50), IN myId INT(11), OUT myName VARCHAR(50))
BEGIN

  SET @GetName = CONCAT('SELECT name INTO @var1 FROM ', tableName, ' WHERE>
登入後複製

解決方案:

雖然在預存程序函數中不允許動態 SQL,但它是可以利用準備好的語句來動態建構和執行 SQL 語句。不幸的是,準備好的語句不能直接在函數中使用。
SET @tableName = 'tbl';
SET @myId = 1005;
SET @name = NULL;
CALL getName(@tableName, @myId, @name);
SELECT @name;
登入後複製

另一種方法是建立一個帶有OUT 參數的預存程序:

此程序接受輸入參數tableName 和myId,並且將myName OUT 參數設定為檢索到的值。這個過程動態建構 SQL 語句並使用準備好的語句來執行。 要使用此流程,請按照下列步驟操作:此解決方案允許動態擷取來自不同位置的值。預存程序中的表。

以上是如何從預存程序中動態指定的表中檢索資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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