2017-11-25 124 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行''附近使用正确的语法 –