Home  >  Article  >  Database  >  mysql创建存储过程和函数_MySQL

mysql创建存储过程和函数_MySQL

WBOY
WBOYOriginal
2016-06-01 13:42:06999browse

bitsCN.com mysql创建存储过程和函数 一个存储程序是可以被存储在服务器中的一套SQL语句。可以通过客户端用CREATE PROCEDURE和CREATE FUNCTION  创建一个存储过程或函数。在客户端通过CALL语句 调用所创建的存数过程或函数。 语法: 创建存储子程序: 01CREATE PROCEDURE sp_name ([proc_parameter[,...]])02    [characteristic ...] routine_body03CREATE FUNCTION sp_name ([func_parameter[,...]])04    RETURNS type05    [characteristic ...] routine_body06    proc_parameter:07    [ IN | OUT | INOUT ] param_name type08    func_parameter:09    param_name type10    type:11    Any valid MySQL data type12characteristic:13    LANGUAGE SQL14  | [NOT] DETERMINISTIC15  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }16  | SQL SECURITY { DEFINER | INVOKER }17  | COMMENT 'string'18routine_body:19    Valid SQL procedure statement or statements
 默认地,子程序与当前数据库关联。要明确地把子程序与一个给定数据库关联起来,可以在创建子程序的时候指定其名字为db_name.sp_name。在 程序被定义的时候,用mysql客户端delimiter命令来把语句定界符从 ;变为//。这就允许用在 程序体中的;定界符被传递到服务器而不是被mysql自己来解释。例如: 01mysql> delimiter //02mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)03    -> BEGIN04    ->   SELECT COUNT(*) INTO param1 FROM t;05    -> END    06    -> //07Query OK, 0 rows affected (0.00 sec)08mysql> delimiter ;09mysql> CALL simpleproc(@a);10Query OK, 0 rows affected (0.00 sec)11mysql> SELECT @a;12+------+13| @a   |14+------+15| 3    |16+------+171 row in set (0.00 sec)01mysql> delimiter //02mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)03    -> RETURN CONCAT('Hello, ',s,'!');04    -> //05Query OK, 0 rows affected (0.00 sec)06mysql> delimiter ;07    mysql> SELECT hello('world');08+----------------+09| hello('world') |10+----------------+11| Hello, world!  |12+----------------+131 row in set (0.00 sec)   作者 蜜蜜 bitsCN.com

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn