Mysql应用mysql心得分享:存储过程

Mysql应用mysql心得分享:存储过程,第1张

概述介绍《Mysql应用mysql心得分享存储过程》开发教程,希望对您有用。

《MysqL应用MysqL心得分享:存储过程》要点:
本文介绍了MysqL应用MysqL心得分享:存储过程,希望对您有用。如果有疑问,可以联系我们。

use test;drop table if exists t8;CREATE table t8(s1 INT,PRIMARY KEY(s1));drop procedure if exists handlerdemo;DEliMITER $$CREATE PROCEDURE handlerdemo()BEGINdeclare 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

调用存储过程MysqL学习

/* 调用存储过程*/CALL handlerdemo();/* 查看调用存储过程结果*/SELECT @X,@info;

心得体会:MysqL学习

1、语句结束符MysqL学习

也许MysqL是将存储过程、自定义函数看作一条语句的,因此,存储过程里多条语句用“;”隔开,为了避免冲突,就要用delimiter 重新定义结束符.MysqL学习

一般可以在存储过程开始前,定义新的结束符,如MysqL学习

delimiter //MysqL学习

存储过程书写完毕以后,再恢复定义:delimiter ;MysqL学习

但也可以在存储过程开始前,这样写 delimiter $$,但存储过程后不可以再写别的语句了.如上面的例子MysqL学习

2、变量MysqL学习

MysqL的变量,跟sql SERVER一样,形如 @X,但无需声明,直接使用.MysqL学习

而在存储过程里面,变量无须用 @,但要声明.并且声明要放在存储过程的头部(?),如本例,否则报错.真奇怪啊,一方面,有时候变量无须声明就可以使用,另一方面,有时候又要限定声明位置,令人无所适从,似乎随便了点.MysqL学习

存储过程内部的变量,作用范围仅限于存储过程.但那些带@的变量,却仿佛可以跨越会话和连接,看上去是全局变量?如上面的例子.MysqL学习

3、条件和处理MysqL学习

定义条件,是为了给处理调用.如上面的例子:MysqL学习

DECLARE oh_no condition for sqlstate '23000';#DECLARE CONTINUE HANDLER FOR sqlSTATE '23000' SET @X2=1;declare exit handler for oh_no set @info='违反主键约束';
总结

以上是内存溢出为你收集整理的Mysql应用mysql心得分享:存储过程全部内容,希望文章能够帮你解决Mysql应用mysql心得分享:存储过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存