mysql 存储过程 查询后修改_存储过程的查、改、删

一、存储过程的查询

1、通过数据字典表查询

存储过程的定义信息保存在数据字典表information_schema.routines中:

2ed8a4ba8214565d32201f322f79e540.png

mysql> selectROUTINE_NAME, ROUTINE_TYPE-> frominformation_schema.ROUTINES-> where ROUTINE_SCHEMA='db1';+----------------+--------------+

| routine_name | routine_type |

+----------------+--------------+

| difference | PROCEDURE |

| inout_param | PROCEDURE |

| in_param | PROCEDURE |

| out_param | PROCEDURE |

| VerboseCompare | FUNCTION |

| Ver_Compare | FUNCTION |

+----------------+--------------+mysql> SELECT name FROM mysql.proc WHERE db='db1';+----------------+

| name |

+----------------+

| difference |

| inout_param |

| …… |

+----------------+

2、使用show语句查询

SHOW PROCEDURE STATUS WHERE db='数据库名';

53044a0a2b0fe25d255fc1ec031e4bfb.png

3、查看存储过程详细的定义信息

SHOW CREATE PROCEDURE 数据库.存储过程名;

二、存储过程的修改

注意:

ALTER {PROCEDURE | FUNCTION}……语句只能改变存储过程的特征,不能修改过程的参数以及过程体。如果想做这样的修改,必须先使用DROP PROCEDURE 删除过程,然后使用and CREATE PROCEDURE重建过程。

ALTER {PROCEDURE |FUNCTION} sp_name [characteristic ...]

characteristic:

COMMENT'string'

|LANGUAGE SQL|{ CONTAINS SQL | NO SQL | READS SQL DATA |MODIFIES SQL DATA }|SQL SECURITY { DEFINER | INVOKER }

存储过程的特征characteristic:指定存储的特性

1、COMMENT 'string'是注释信息;

LANGUAGE SQL是指明过程体是用sql语言编写的,而不是java或php;

2、SQL SECURITY { DEFINER | INVOKER }指明谁有权限来执行:

DEFINER表示只有定义者自己才能够执行;

INVOKER表示调用者可以执行。

在存储过程定义时:

CREATE

[DEFINER= { user |CURRENT_USER }]

PROCEDURE

……

[DEFINER = { user | CURRENT_USER }]:指定存储过程的定义者,指定CURRENT_USER和不指定定义者选项的效果是一样的

3、{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }:

MySQL现在不使用:

CONTAINS SQL表示子程序包含SQL语句,但不包含读或写数据的语句;

NO SQL表示子程序中不包含SQL语句;

READS SQL DATA表示子程序中包含读数据的语句;

MODIFIES SQL DATA表示子程序中包含写数据的语句。

三、存储过程的删除

DROP PROCEDURE [IF EXISTS] db_name.sp_name;

如果是在当前数据库中的存储过程:DROP PROCEDURE [过程1[,过程2…]]

从MySQL的表格中删除一个或多个存储过程。

四、存储过程的安全

不是每个用户都可以调用一个存储过程;一个用户想调用其它用户创建的过程,必须被授予过程的execute权限:

GRANT EXECUTE

ON PROCEDURETO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值