存储过程函数中的动态表名
在 SQL 中,函数是不可变的,不能修改数据。因此,准备好的语句不能在函数中使用,这在尝试访问具有动态名称的表时带来了挑战。
为了克服这个问题,可以使用存储过程。存储过程可以利用准备好的语句和 OUT 参数来返回值。
以下是可以从动态指定的表中检索名称的存储过程示例:
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>
使用该过程, IN 参数设置表名称和 ID,而 OUT 参数用于检索名称。
SET @tableName = 'tbl'; SET @myId = 1005; SET @name = NULL; CALL getName(@tableName, @myId, @name); SELECT @name;
以上是如何在 SQL 函数中访问动态命名的表?的详细内容。更多信息请关注PHP中文网其他相关文章!