2014-05-02 73 views
0
CREATE PROCEDURE 
    myProcedure(id INT) 
BEGIN 
SELECT * FROM `board`; 
END 

//檢查對應於你的MySQL服務器版本4行mysql的程序給錯誤

+0

你在哪個客戶端輸入了這個?如果在命令行中,您是否記得將語句分隔符設置爲非;之前? – Joni

+0

在phpmyadmin客戶端 –

+0

任何其他客戶端我必須寫這個。 –

回答

1

有兩種方式:

路1

當只有一個可執行語句在過程體,使用BEGIN - END是可選的。使用時,您必須使用自定義DELIMITER

CREATE PROCEDURE myProcedure(id INT) 
    SELECT * FROM `board`; 

方式2

定義自定義DELIMITER,定義過程,然後重新設置的分隔符。

DELIMITER // 

DROP PROCEDURE IF EXISTS myProcedure // 

CREATE PROCEDURE myProcedure(id INT) 
BEGIN 
    SELECT * FROM `board`; 
END; 
// 

DELIMITER ; 
+0

感謝兄弟:)這是工作。 –

1

檢查使用「」附近是否能解決錯誤

Delimiter // 

CREATE PROCEDURE 
    myProcedure(id INT) 
BEGIN 
SELECT * FROM board; 
END 
// 
+0

仍然給出相同的錯誤。 –

+0

嘗試刪除分號,檢查我編輯的答案 – Hitesh

+0

檢查與您的MySQL服務器版本相對應的手冊,在第5行附近使用正確的語法 –

1
正確的語法手冊

使用delimeter

delimiter // 
CREATE PROCEDURE 
    myProcedure(id INT) 
BEGIN 
SELECT * FROM `board`; 
END // 
+0

嘿兄弟仍然給出同樣的錯誤。 –

+0

對錶名或其他標識符進行反引號並不是錯誤。你的回答是錯誤的。 –

+0

@Ravinder現在它很好? –