我正在尝试执行下面的这个过程,我收到一个错误。请有人帮我救人
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”附近使用。
答案 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,'")') ;