Mysql存储过程获取表名作为参数
问题描述:
我有一个向表插入一行的mysql过程。是否有可能将表的名称作为参数传递?Mysql存储过程获取表名作为参数
我试过并得到一个未知的表格异常。
编辑:
我的过程是从一个insaid叫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
的错误:错误1146:1146:表 'xxx_xx_admin.tableName' 不存在
答
这是可能的,但前提是你使用动态SQL来构建你的SQL。 MySQL使用PREPARE和EXECUTE来实现这个功能。
见How To have Dynamic SQL in MySQL Stored Procedure 和 http://rpbouman.blogspot.de/2005/11/mysql-5-prepared-statement-syntax-and.html
后你尝试过什么...... – 2014-10-07 08:37:58
显示您的查询和错误你得到 – 2014-10-07 08:39:12
这是可能的。 – 2014-10-07 08:39:47