Mysql存储过程获取表名作为参数

时间:2014-10-07 08:36:34

标签: mysql stored-procedures

我有一个mysql过程,可以在表中插入一行。是否可以将表的名称作为参数传递?

我尝试了一个未知的表异常。

编辑:

我的程序是从一个trriger的人那里打来的:

CREATE  PROCEDURE `blabla`(tableName VARCHAR(255), var1 VARCHAR(255), var2 VARCHAR(255), var3 VARCHAR(255))
BEGIN
            INSERT INTO tableName 
            SET
                var1 = var1,
                var2= var2,
                var3= var3;

END

错误:ERROR 1146:1146:表'xxx_xx_admin.tableName'不存在

1 个答案:

答案 0 :(得分:1)

这是可能的,但前提是您使用动态SQL来构建SQL。 MySQL使用PREPAREEXECUTE实现此目的。

参见How To have Dynamic SQL in MySQL Stored Procedurehttp://rpbouman.blogspot.de/2005/11/mysql-5-prepared-statement-syntax-and.html