2016-04-21 63 views
0

我想创建一个存储过程,我得到一个错误代码。如何创建插入存储过程mysql

错误代码:1064.您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法 在第12行

使用“”附近的 手册我不是最大的与MySQL和我不能确定在哪里竟然一下图中的问题出来了。

Create Procedure Sp_insertCustomer(
    IN Customer_id VARCHAR(20) , 
    IN UserName VARCHAR(20), 
    IN Fname VARCHAR(20), 
    IN Lname VARCHAR(20), 
    IN Dob Date, 
    IN Address VARCHAR(250), 
    IN Phone INT, 
    IN Email VARCHAR(250), 
    IN Ss VARCHAR(9)) 
BEGIN 
INSERT INTO Customer (Cusomter_id,UserName,Fname,Lname,Dob,Address,Phone,Email,Ss)  
VALUES (in_Customer_id ,in_UserName , in_Fname , in_Lname , in_Dob , in_Address , in_Phone , in_Email , in_Ss); 
END 
+1

INSERT'VALUES'部分中的变量与您在参数中的不匹配。 – andre3wap

回答

0

1)您的参数和值在插入语句是不同的: CUSTOMER_ID是INSERT语句的参数和in_Customer_id

2)添加定界符

DELIMITER $$

<你的程序>

END $$ --- instead your END

DELIMITER;

+0

因此,而不是in_Customer_id它应该只是Customer_id? –

+0

尽量做到这一点 –

0

看来你错过了参数名称。你也不需要为params指定IN。

DELIMITER $$ 
Create Procedure Sp_insertCustomer(
Customer_id VARCHAR(20) , 
UserName VARCHAR(20), 
Fname VARCHAR(20), 
Lname VARCHAR(20), 
Dob Date, 
Address VARCHAR(250), 
Phone INT, 
Email VARCHAR(250), 
Ss VARCHAR(9)) 
BEGIN 
INSERT INTO Customer (Cusomter_id, UserName, Fname, Lname, Dob, Address, Phone, Email, Ss) 
VALUES (Customer_id, UserName, Fname, Lname, Dob, Address, Phone, Email, Ss); 
END$$