如何在 MySQL 数据库中使用动态 SQL 语句而不使用会话变量?
现在我有这样一个代码(在 MySQL 存储过程中):
(...)
声明表名 VARCHAR(32);
SET @SelectedId = NULL;
SET @s := CONCAT("SELECT Id INTO @SelectedId FROM ", TableName, " WHERE param=val LIMIT 1");
从@s准备stmt;
执行语句;
DEALLOCATE PREPARE stmt;
IF ISNULL(@SelectedId) THEN
(...)
但我只想使用局部变量,这意味着我想开始这个过程:
声明表名 VARCHAR(32); 声明的 VARCHAR(1024); DECLARE SelectedId INTEGER UNSIGNED; (...)
并且不要在任何地方使用@char。有没有办法做到这一点?