大家都经常用 Mysql-Front 连接数据库吧,
我最近刚开始写 存储过程,遇到一些问题,发现Mysql-Front 和 远程登录再用mysql命令行连接数据库有不同,
从文档上copy的示例也不能正常执行,比较郁闷,
经过试验,基本上差别如下:
在Mysql命令行登录模式,要如下写mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
这是因为:用mysql客户端delimiter命令来把语句定界符从 ;变为//。这就允许用在 程
序体中的;定界符被传递到服务器而不是被mysql自己来解释。
所以在写完结构体之后,还要把定界符给恢复回来:mysql> delimiter ;
我最近刚开始写 存储过程,遇到一些问题,发现Mysql-Front 和 远程登录再用mysql命令行连接数据库有不同,
从文档上copy的示例也不能正常执行,比较郁闷,
经过试验,基本上差别如下:
在Mysql命令行登录模式,要如下写mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
这是因为:用mysql客户端delimiter命令来把语句定界符从 ;变为//。这就允许用在 程
序体中的;定界符被传递到服务器而不是被mysql自己来解释。
所以在写完结构体之后,还要把定界符给恢复回来:mysql> delimiter ;
Mysql-Front 中,结构体之内用“;”结构体之外也用“;”分隔,
所以END后面也要加一“;”CREATE PROCEDURE simpleproc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END;
Query OK, 0 rows affected (0.00 sec)
目前就发现这些,不知道还有没有其他区别,
有了解的比较详细的吗,能不能给解释一下?
另外,Mysql-Front 中全用“;”做分隔符,怎么就没事,为什么存储过程的定义不会被断开?
看来Mysql-Front 比较智能?