在mysql insert语句中执行proc时出错

时间:2013-09-06 05:47:14

标签: mysql

我正在尝试执行下面的这个过程,我收到一个错误。请有人帮我救人

----

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_class_code`(p_newS varchar(45), p_designation varchar(45))
BEGIN

SET @table_name = p_designation;
SET @new_supply = p_newS;

SET @sql_text = concat('insert into simsed_',@table_name,' (class) values ',@new_supply) ;

PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

END

----

这是我得到的错误。

  

调用insert_class_code('供应3','供应商)

     

错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在“供应3”和“供应3”附近使用。

1 个答案:

答案 0 :(得分:2)

您的以下行有错误:

SET @sql_text = concat('insert into simsed_',@table_name,' (class) values ',@new_supply) ;

使用以下代码更改它:

SET @sql_text = concat('insert into simsed_',@table_name,' (class) values ("',@new_supply,'")') ;