mysql 存储过程的学习日志

一, 语法 -摘自mysql5.6手册

CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,…]])
[characteristic …] routine_body
CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,…]])
RETURNS type
[characteristic …] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT ‘string’
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement

二, 实例

mysql>delimiter //
      drop procedure if exsits articles_procedure;
      create procedure articles_procedure(in articlesId int ,in titles varchar(50))
      begin
        declare ids int;
        declare content varchar(50);
        set ids = articlesId;
	    set content = titles;
	    update article  set title = content where id = ids;
      end//
      delimiter ;

剖析:

  • delimiter // 表示 把mysql的分隔符换成 //
  • drop 语句, 判断名称是articles_procedure的触发器是否存在,存在即删除
  • create 语句, 创建 触发器, 名称是articles_procedure ,参数一 articlesId,类型是int,参数二 titles , 类型是 varchar(50)
  • IN, OUT或INOUT 固定语法, 详情请看-摘自mysql5.6手册 , 我理解的不深
  • begin , end 中间为 主题
  • declare 定义变量,
  • set 给变量赋值 ,如果set 的变量前面有@符号表示这个变量是一个会话变量。否则是一个局部变量。
  • delimiter ; mysql分隔符重新定义为 ‘;’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值