2017-11-25 90 views
0
CREATE PROCEDURE search 
@id INT 

AS 
BEGIN 
SET NO COUNT ON; 
SELECT cteachID, 
     cfname, 
     cmname, 
     clname 
FROM tbl_teacher 
WHERE cteachID = @id 
END 

MySQL表示:文件創建一個程序錯誤

1064 - 你在你的SQL語法錯誤;檢查 對應於您MariaDB的服務器版本正確的語法使用 附近手冊「@id INT和BEGIN SET NO指望」在第2行

回答

0

您可以在存儲過程中發現MariaDB的文檔在這裏:https://mariadb.com/kb/en/library/create-procedure/

DELIMITER // 

CREATE PROCEDURE search 
(IN id INT) 
BEGIN 

    SELECT cteachID, 
      cfname, 
      cmname, 
      clname 
    FROM tbl_teacher 
    WHERE cteachID = id; 

END; 
// 

DELIMITER ; 

除了這一點,你需要使用的分隔符關鍵字,因爲您的創建過程使用開始/結束塊。

+0

我認爲mysql沒有「SET NO COUNT ON」;命令它需要替換相當於 –

+0

@KhánhBùiĐức好點;完全錯過了那條線。仔細的校勘 – JohnLBevan

0

你的代碼是SQL服務器的工作。對於MySQL,存儲的語法procedured有一些差異

DROP PROCEDURE IF EXISTS search; 

    DELIMITER $$ 
    CREATE PROCEDURE search(IN id INT) 
    BEGIN 
     SELECT cteachID, 
       cfname, 
       cmname, 
       clname 
        FROM tbl_teacher 
        WHERE cteachID = id; 
    END$$ 

    DELIMITER; 
+0

還是由於錯誤使用phpmyadmin的 –

+0

你創建它的方式嗎?如果你可以請發佈錯誤信息,當你運行我的答案 –

+0

是的,我運行它與phpmyadmin繼承人錯誤 MySQL說:文檔 #1064 - 你的SQL語法錯誤;請檢查與您的MariaDB服務器版本對應的手冊,以便在第8行''附近使用正確的語法 –