2016-04-21 61 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$$