• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql之存储过程跟存储函数

mysql 搞代码 7年前 (2018-06-06) 124次浏览 已收录 0个评论

mysql之存储过程和存储函数

CREATE PROCEDURE sp_name ([proc_parameter[,…]])
[characteristic …] routine_body
CREATE FUNCTION sp_name ([func_parameter[,…]])
RETURNS type [characteristic …] routine_body

欢迎大家阅读mysql之存储过程跟存储函数》,跪求各位点评,by 搞代码

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)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql之存储过程跟存储函数
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址