Mysql表插入存储过程

Mysql表插入存储过程,mysql,stored-procedures,Mysql,Stored Procedures,我想将数据插入到一个表中,该表的表名和值是从存储过程中的用户传递来的 enter code here mysql> DELIMITER // mysql> CREATE PROCEDURE tableinsertion(IN tablename varchar(20),IN ano int(10)) -> BEGIN -> SET @s=CONCAT('INSERT INTO ', tablename, 'values', (ano)); -> PREPARE st

我想将数据插入到一个表中,该表的表名和值是从存储过程中的用户传递来的

enter code here
mysql> DELIMITER //
mysql> CREATE PROCEDURE tableinsertion(IN tablename varchar(20),IN ano int(10))
-> BEGIN
-> SET @s=CONCAT('INSERT INTO ', tablename, 'values', (ano));
-> PREPARE stmt FROM @s;
-> EXECUTE stmt;
-> END //
我按如下方式调用函数 调用tableinsertion('account','110')// 但是我得到了错误。

缺少空格

SET @s=CONCAT('INSERT INTO ', tablename, 'values', (ano));
                                          ^-----^---here
这将生成查询

INSERT INTO sometablevalues(ano)

仍然是相同的错误,表示第3行有错误,即SET@s=CONCAT('INSERT-in',tablename',values',(ano));