1

以下のこのプロシージャを実行しようとすると、エラーが発生します。誰か私を救済してください

----

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

----

これは私が得るエラーです。

call insert_class_code('supply 3', 'supplier)

エラー コード: 1064。SQL 構文にエラーがあります。「supply 3」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1

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,'")') ;
于 2013-09-06T05:54:32.770 に答える