gpt4 book ai didi

mysql心得分享:存储过程

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章mysql心得分享:存储过程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1 。

2 。

3 。

4 。

5 。

6 。

7 。

8 。

9 。

10 。

11 。

12 。

13 。

14 。

15 。

16 。

17 。

18 。

19 。

20 。

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 。

调用存储过程 。

1 。

2 。

3 。

4 。

5 。

/* 调用存储过程*/ 。

CALL handlerdemo(),

  。

/* 查看调用存储过程结果*/ 。

SELECT @X,@info,

心得体会:

1、语句结束符 。

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

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

delimiter // 。

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

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

2、变量 。

mysql的变量,跟SQL SERVER一样,形如 @X ,但无需声明,直接使用.

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

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

3、条件和处理 。

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

1 。

2 。

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='违反主键约束',

  。

最后此篇关于mysql心得分享:存储过程的文章就讲到这里了,如果你想了解更多关于mysql心得分享:存储过程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com