mysql之存储过程和存储函数
来源:互联网 发布:天津seo源诊断 编辑:程序博客网 时间:2024/05/18 11:18
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
CREATE FUNCTION sp_name ([func_parameter[,...]])
RETURNS type [characteristic ...] routine_body
proc_parameter: [ IN | OUT | INOUT ] param_name type
type: Any valid MySQL data type
characteristic: LANGUAGE SQL| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
routine_body: Valid SQL procedure statement or statements
COMMENT子句是一个MySQL的扩展,它可以被用来描述存储程序。这个信息被SHOW CREATE PROCEDURE和 SHOW CREATE FUNCTION语句来显示。
MySQL允许子程序包含DDL语句,如CREATE和DROP。MySQL也允许存储程序(但不是存储函数)包含SQL 交互语句,如COMMIT。存储函数不可以包含那些做明确的和绝对的提交或者做回滚的语句。
存储子程序不能使用LOAD DATA INFILE。
ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]
characteristic:
{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
SHOW CREATE {PROCEDURE | FUNCTION} sp_name
SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern']
CALL sp_name([parameter[,...]])
CALL语句可以用声明为OUT或的INOUT参数的参数给它的调用者传回值。它也“返回”受影响的行数,客户端程序可以在SQL级别通过调用ROW_COUNT()函数获得这个数,从C中是调用the mysql_affected_rows() C API函数来获得
BEGIN ... END复合语句
[begin_label:] BEGIN
[statement_list]
END [end_label]
变量的使用
DECLARE var_name[,...] type [DEFAULT value]用来声明局部变量。
SET var_name = expr [, var_name = expr] ...
SELECT col_name[,...] INTO var_name[,...] table_expr
存储过程实例:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
函数实例:
mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
-> RETURN CONCAT('Hello, ',s,'!');
-> //
Query OK, 0 rows affected (0.00 sec)
- mysql之存储过程和存储函数
- MySQL之存储过程和函数
- Mysql之存储过程与存储函数
- 8,mysql存储过程和存储函数
- mysql,存储过程和存储函数
- MySQL存储过程和存储函数
- Mysql-存储过程和存储函数笔记
- mysql 存储过程 和存储函数
- MySQL存储过程和存储函数
- MYSQL存储过程和存储函数入门
- MySQL 存储过程和存储函数示例
- Mysql中的存储过程和存储函数
- mysql的存储函数和存储过程
- MySQL 存储过程和存储函数示例
- mysql存储过程和函数
- mysql存储过程和函数
- Mysql 存储过程和函数
- MySQL-存储过程和函数
- 项目经理和部门经理的区别
- PHP字符串补全,PHP字符串自动填充,PHP输出固定长度
- wifi最新资料大全
- 对TextFile格式文件的lzo压缩建立index索引
- 每天一道C++笔试题 III --- strcmp
- mysql之存储过程和存储函数
- NSUserDefaults类概述
- 26(48)----windows internals 第6版 mark david alex
- [Unity3D]地形系统的创建与简单设置
- vim中shiftwidth, tabstop, softtabstop和expandtab
- Android 获取状态栏的高度
- 如何查看oracle数据库的端口号?
- oracle数据库和mysql数据库列类型对照
- Resolve Chiness Messy Code in Linux