簡體   English   中英

在mysql中運行存儲過程時出錯

[英]error when running the stored procedure in mysql

我試圖在mysql中執行存儲過程,下面是命令:

create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student values (name1, sal1) 
END;

但是我收到了一個錯誤。 我在mysql客戶端運行上面的命令。 請讓我知道我哪里出錯了。

錯誤1064(42000):您的SQL語法有錯誤; 檢查與MySQL服務器版本對應的手冊,以便在第1行的“END”附近使用正確的語法

添加; insert后:

create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student(name, sal) values (name1, sal1) ;
END;

SqlFiddleDemo

將列列表添加到INSERT INTO tab(col_list) VALUES ...是一個很好的做法。


您可能需要根據客戶端定義分隔符

如果使用mysql客戶端程序定義包含分號字符的存儲程序,則會出現問題。 默認情況下,mysql本身將分號識別為語句分隔符,因此必須臨時重新定義分隔符以使mysql將整個存儲的程序定義傳遞給服務器。

DELIMITER $$
create procedure insertIntoEMP (IN name1 VARCHAR (50),IN sal1 INT) 
BEGIN 
   insert into student(name, sal) values (name1, sal1) ;
END$$ 
DELIMITER ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM