CREATE PROCEDURE HelloWorld()
BEGIN
    SELECT "Hello World!" ;
END;这条语句应该没有语法错误吧?
在别人机子上可以,我机上上会一直提示语法错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 1问下是不是我还要装什么服务??

解决方案 »

  1.   

    mysql> CREATE PROCEDURE HelloWorld()
        ->     SELECT "Hello World!" ;
    Query OK, 0 rows affected (0.34 sec)mysql> call HelloWorld();
    +--------------+
    | Hello World! |
    +--------------+
    | Hello World! |
    +--------------+
    1 row in set (0.08 sec)Query OK, 0 rows affected (0.09 sec)mysql>
      

  2.   

    或者delimiter //
    CREATE PROCEDURE HelloWorld()
    BEGIN
        SELECT "Hello World!" ;
    END//
    delimiter ;
      

  3.   

    建议在MYSQL手册中查下delimiter的用途就知道为什么了。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  4.   

    CREATE PROCEDURE HelloWorld()
    BEGIN
        SELECT 'Hello World!';
    END;试试 双引号 改成单引号 
      

  5.   

    CREATE PROCEDURE HelloWorld()
        SELECT 'Hello World!' ;
    1。双引号 改成 单引号2。一句话的时候不要用begin end 这样会引起结束符的错误 
       非要用 可以这样
    delimiter $$CREATE PROCEDURE HelloWorld()
    BEGIN
        SELECT 'Hello World!';
    END;
    $$delimiter ;
      

  6.   

    你在别人的机器上是用客户端工具执行的吧,在你本机上是在命令行下执行的吧?在命令行下,默认是以 ; 作为命令提交符的,你需要用DELIMITER去修改默认提交符,这样在存储过程内部才能使用;
      

  7.   

    存储过程的有效期是多久啊。
    我想在PHP里面用存储过程,但是好像是在执行那一句SQL的瞬间才有效,执行完毕后再调就报错了。