首页 / MYSQL / mysql学习笔记:存储过程
mysql学习笔记:存储过程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql学习笔记:存储过程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1564字,纯文字阅读大概需要3分钟。
内容图文
![mysql学习笔记:存储过程](/upload/InfoBanner/zyjiaocheng/540/323199a9270f4b41a64041c64d3031f9.jpg)
use test; drop table if exists t8; CREATE TABLE t8(s1 INT,PRIMARY KEY(s1)); drop procedure if exists handlerdemo; DELIMITER $$ CREATE PROCEDURE handlerdemo() BEGIN declare xx int default 4; DECLARE oh_no condition for sqlstate '23000'; #DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1; declare exit handler for oh_no set @info='违反主键约束'; SET @X=1; INSERT INTO t8 VALUES(1); SET @X=2; INSERT INTO t8 VALUES(1); SET @X=3; END
调用存储过程
/* 调用存储过程*/ CALL handlerdemo(); /* 查看调用存储过程结果*/ SELECT @X,@info;
心得体会:
1、语句结束符
也许mysql是将存储过程、自定义函数看作一条语句的,因此,存储过程里多条语句用“;”隔开,为了避免冲突,就要用delimiter 重新定义结束符。
一般可以在存储过程开始前,定义新的结束符,如
delimiter //
存储过程书写完毕以后,再恢复定义:delimiter ;
2、变量
mysql的变量,跟SQL SERVER一样,形如 @X ,但无需声明,直接使用。
而在存储过程里面,变量无须用 @,但要声明。并且声明要放在存储过程的头部(?),如本例,否则报错。真奇怪啊,一方面,有时候变量无须声明就可以使用,另一方面,有时候又要限定声明位置,令人无所适从,似乎随便了点。
存储过程内部的变量,作用范围仅限于存储过程。但那些带@的变量,却仿佛可以跨越会话和连接,看上去是全局变量?如上面的例子。
3、条件和处理
定义条件,是为了给处理调用。如上面的例子:
DECLARE oh_no condition for sqlstate '23000'; #DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @X2=1; declare exit handler for oh_no set @info='违反主键约束';
以上就是以上就是的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
内容总结
以上是互联网集市为您收集整理的mysql学习笔记:存储过程全部内容,希望文章能够帮你解决mysql学习笔记:存储过程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。