北京SEO

MySQL5的存储过程详细实例

2019/10/10/17:33:32  阅读:1898  来源:谷歌SEO算法  标签: Safari浏览器

本文章来介绍一下关于mysql5的新特性存储过程了,在mysql5之前是没有存储过程这一说的,下面我们来看看mysql5存储过程的用法.

MySQL 5.0:新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的,简单的来说是介绍了“存储过程、触发器、视图、信息架构视图.

格式:

  1. CREATEPROCEDURE过程名([过程参数[,...]])
  2. [特性...]过程体
  3. CREATEFUNCTION函数名([函数参数[,...]])
  4. RETURNS返回类型
  5. [特性...]函数体

过程参数:[ IN | OUT | INOUT ] 参数名 参数类型

函数参数:参数名 参数类型

返回类型:有效的MySQL数据类型即可

特性:

  1. LANGUAGESQL
  2. |[NOT]DETERMINISTIC
  3. |{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}
  4. |SQLSECURITY{DEFINER|INVOKER}
  5. |COMMENT'string'

过程体/函数体:格式如下:

  1. BEGIN
  2. 有效的SQL语句
  3. END

实例:

  1. DELIMITER$$
  2. DROPPROCEDUREIFEXISTS`spTest`$$
  3. CREATEPROCEDURE`spTest`(p_titleVARCHAR(200),p_descriptionTEXT)--phpfensi.com
  4. DETERMINISTIC
  5. BEGIN
  6. INSERTINTOcategory(title,description)
  7. VALUES(p_title,p_description);
  8. END$$
  9. DELIMITER;

其中DELIMITER是用来决定SQL分隔符号的,在写Stored Procedure前,要先把预设的分号换掉,写完 Stored Procedure 的 routine_body 后,再回复成预设的分号.

--删除:drop procedure if exists up_common_select

--创建

  1. CREATEPROCEDURE`up_common_select`(
  2. int_namevarchar(50)
  3. )
  4. begin
  5. declarev_sqlvarchar(500);
  6. setv_sql=concat('select*from',t_name);
  7. selectv_sql;
  8. --

--注意:prepare(预处理)execute stmt using @var,只能跟@var变量,declare和传入的变量不行!!!

  1. set@v_sql=v_sql;
  2. preparestmtfrom@v_sql;
  3. EXECUTEstmt;
  4. deallocatepreparestmt;
  5. end;

--调用:call up_common_select('admin_authority');

注意事项:

1 mysql5.0.13之后支持在存储过程中调用prepare

2, prepare stmt from 'select * from ?';(错)

mysql5.0.24,prepare尚不支持 表名做变量!

解决方案:用 contat()函数,组合字符串

3. execute stmt [using @var,@var2]

必须是@var形式的变量,传入的参数变量,declare变量不行

4.deallocate prepare stmt; 显式的释放prepare,如果不释放,mysql会释放,!

广告内容

MySQL5的存储过程详细实例 MySQL5的存储过程详细实例 MySQL5的存储过程详细实例

相关阅读

热门评论

卢松松博客 卢松松博客

关注创业者、自媒体人和站长的网站

总篇数167

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法