我有一个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'不存在
答案 0 :(得分:1)
这是可能的,但前提是您使用动态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