|
MySQL5.0中的Function和Procedure
创建函数(Function)
创建: mysql> CREATE FUNCTION MyFunc (s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT ('Hello',s,'.Lan',' !');
使用: mysql> select MyFunc('Dennis');
删除: drop function MyFunc;
创建存储过程(Procedure)
创建: (由于存储过程是用";"结尾的,而";"在mysql默认的sql结尾.所以在这里要先改mysql的这个结束符)
mysql> delimiter |
mysql> CREATE PROCEDURE MyProc (OUT param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM mysql.user; END; -> |
官方文档:http://www.mysql.com/doc/en/CREATE_PROCEDURE.html
调用: 第一步: mysql> CALL MyProc(@a)| 第二步: mysql> select @a; -> |
完整的例子: mysql> CREATE PROCEDURE MyProc (OUT param1 INT) BEGIN SELECT COUNT(*) INTO param 1 FROM mysql.user; END; -> | Query OK, 0 rows affected (0.00 sec) mysql> call MyProc(@a)| Query OK, 0 rows affected (0.03 sec) mysql> select @a | +------+ | @a | +------+ | 4 | +------+ 1 row in set (0.00 sec)
删除: mysql> drop procedure MyProc| (注意,这里存储过程的名字是区分大小写的)
注: 如果你在和程序连接时出现: Client does not support authentication protocol requested by server; consider upgrading MySQL client 请参考 http://www.mysql.com/doc/en/Old_client.html 这里提供了完整的解决方案.
|