您好刚刚开始学习 MYSQL 任何加速它的建议....我很好奇为什么这段代码没有 working.procedure 创建但不起作用

HI have just started learning MYSQL any suggestions to speed it up.... and i am curious why this code is not working.procedure created but not work

DELIMITER $$
USE DB_1$$
create procedure SHOWTAB(in tab varchar(255) )
BEGIN
SELECT * FROM tab ;
END$$
DELIMITER ;


CALL SHOWTAB(emp);

emp 是 TABLE 我的数据库

错误代码:1054。'field list'

中的未知列 'emp'

Table 和列名不能是变量。如果要动态指定 table 名称,则必须动态构造 SQL。

DELIMITER $$
USE DB_1$$
create procedure SHOWTAB(in tab varchar(255) )
BEGIN
    SET @sql = CONCAT('SELECT * FROM `', tab, '`');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;

并且在调用过程时需要引用名称 emp 使其成为字符串。

CALL SHOWTAB('emp');