2013-03-20 84 views
-2

我嘗試使用存儲過程時遇到同樣的錯誤。如何獲取MySQL中的錯誤#1064

例子:

CREATE PROCEDURE mmStudents 
AS 
SELECT * FROM student where course 'mm' 

1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第2行的'AS SELECT * FROM student where course'mm''附近使用正確的語法。

任何幫助讚賞。

+0

這看起來更像是你想要創建一個視圖。有關存儲過程的正確語法,請參閱[MySQL文檔](http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html)。 – Perception 2013-03-20 22:51:08

回答

1

MySQL的存儲過程沒有AS關鍵字。它應該是

DELIMITER $$ 
CREATE PROCEDURE mmStudents() 
BEGIN 
    SELECT * FROM student where course = 'mm'; 
END $$ 
DELIMITER ; 
+0

我仍然得到相同的錯誤。語法在不同的服務器上有所不同嗎? – joe 2013-03-20 22:57:44

+0

什麼是錯誤?嘗試一下。 – Pedigree 2013-03-20 22:58:41

+0

#1064 - 您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'BEGIN SELECT * FROM student where course ='mm'附近使用正確的語法; END'在第2行 – joe 2013-03-20 23:00:15

0

你缺少運營商爲您的where子句

SELECT * FROM student where course = 'mm' 

例如。

CREATE PROCEDURE

圓括號中的參數列表必須始終存在。如果沒有參數,則應使用()的空參數列表。

所以你完整的說法應該是

CREATE PROCEDURE mmStudents() 
SELECT * FROM student where course = 'mm'