0

我第一次尝试创建一个简单的存储过程。我已经在网上搜索并找到了几个教程,但是当我尝试创建 INSERT 过程时总是遇到一些错误?

我正在尝试这个:

DELIMITER // 
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN

SET @fname=fname; 
SET @lname=lname;

PREPARE STMT FROM 
"INSERT INTO users(fname,lname) VALUES (?,?)";

EXECUTE STMT USING @fname,@lname; 

END

我收到此错误: #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50)) BEGIN SET @fname=fn' 附近使用正确的语法

希望提前帮助和感谢:-)

4

1 回答 1

1

您使用 " 而不是 ' 。那是您的查询中的错误。下面给出了正确的查询

DELIMITER // 
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN

SET @fname=fname; 
SET @lname=lname;

PREPARE STMT FROM 
'INSERT INTO users(fname,lname) VALUES (?,?)';

EXECUTE STMT USING @fname,@lname; 

END //

或者你可以简单地使用

DELIMITER //
CREATE PROCEDURE my_insert(IN fname VARCHAR(50),IN lname VARCHAR(50))

BEGIN
INSERT INTO users(`fname`,`lname`) VALUES (fname,lname);


END //
于 2013-01-03T11:05:00.110 回答