当前位置:首页 » 存储配置 » mysqlshow存储过程

mysqlshow存储过程

发布时间: 2022-12-10 12:10:00

① mysql存储过程

存储过程在mysql中是新面孔,最近一直在用存储过程,但忘记了一个很重要的问题,如何得到存储过程的列表。
可能是对mysql太有信心了,一开始我没考虑过这个问题,直到我建立了55个存储过程后,才意识到问题的严重性,我无法用类似show tables获得表的列表一样用show PROCEDURES 来获得存储过程的列表。我试了show stored routines 、show storedroutines 、show routines等等,结果都在意料之中,得不到。
接着我想到了information_schema库,在以前,select * from information_schema.tables;是比show tables还要方便得到表信息的办法,于是我去了information_schema库中转了一圈,仍然一无所获。而完全没有去想一直用来保存用户和地址信息的mysql库。
就在今天为了建立可以调用存储过程的用户时,我访问了mysql库,在刚进的时候察觉了库中多了几个表,也没在意,在要离开的时候才注意到里面有一个表的名字叫proc,似乎是建立存储过程时使用的PROCEDURES前4位字母,于是select了一下,结果掘到了宝。存储过程的相关数据好好的保存在里面。看来以后也同样不能小看mysql库了。
想要得到你的存储过程列表,那么执行下面的语句吧。

select name,db from mysql.proc;

ps:还得知了存储过程的名称长度为64个字节,多于64则自动删除。可以使用中文-_-!!!

② mysql存储过程怎么调

mysql调试存储过程具体方法:

在你的存储过程中加入如下语句:
SELECT 变量1,变量2;

然后用mysql自带的cmd程序进入mysql> 下。
call 你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同学,如果你的存储过程有输出变量,那么在这里只需要加 @ 然后跟任意变量名即可);
即可发现你的变量值被打印到了cmd下

③ 如何查看mysql内的存储过程总数

查看存储过程创建语句可运行下列SQL语句:语法show create {procere|function} sp_name;例如查看存储过程myPro的创建语句show create procere myPro;查看自定义函数myFunc的创建语句show create function myFunc;

④ mysql存储过程

MySQL存储过程创建的格式如下:
CREATE PROCEDURE 过程名 ([过程参数[,...]])[特性 ...] 过程体
举例代码如下:

CREATE PROCEDURE proc1(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM user; END

存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。
过程体的开始与结束使用BEGIN与END进行标识。
注意:MySQL在5.0以前并不支持存储过程

⑤ mysql创建存储过程,为什么行不通

可能是少一个空格的问题


也就是那个 DELIMITER //

在 DELIMITER与 // 之间, 有一个空格.


DELIMITER//
CREATEPROCEDUREHelloWorld()
BEGIN
SELECT'HelloWorld';
END//

DELIMITER;

callHelloWorld();

+-------------+
|HelloWorld|
+-------------+
|HelloWorld|
+-------------+
1rowinset(0.00sec)

QueryOK,0rowsaffected(0.00sec)注:如果HelloWorld都失败,那么首先需要检查数据库的存储引擎

mysql>showvariableslike'%storage_engine%';
+----------------+--------+
|Variable_name|Value|
+----------------+--------+
|storage_engine|MyISAM|
+----------------+--------+
1rowinset(0.00sec)

存储引擎为InnoDB的数据库,能使用存储过程。

mysql>showvariableslike'%storage_engine%';
+----------------+--------+
|Variable_name|Value|
+----------------+--------+
|storage_engine|InnoDB|
+----------------+--------+
1rowinset(0.01sec)

⑥ MySQL存储过程查询和删除的问题

创建数据库: create database database-name;
删除数据库: drop database database-name
查看所有数据库: show databases
进入数据库: use database-name
创建表table:
create table table-name(
id int,
name varchar(number)
money float(10,2)
)charset utf8,
删除表table: drop table table-name
查看表结构: desc table-name
查看所有表: show tables
重命名表table: rename table table-name to table-other-name
中文编码设置{
show variables like 'character%'
set names gbk *必须gbk*
alter table table-name charset gbk
alter tabler table-name modify [column] dataName datatype charset gsk
}
改变表结构(列){
追加: alter table table-name add column dataName datatype
修改数据类型: alter table table-name modify column dataName datatype-other
修改列名: alter table table-name change column dataName dataName-other datatype
删除列: alter table table-name drop column dataName
}

数据库的基本操作{
添加: insert into table-name(dataName,dataName-other,..[添加的数据及数据 顺序]) values(data(符合datatype) , ,)charset utf8
删除: delete from table-name[where definition 删除条件满足的记录|或删除所有 记录]

⑦ 存储过程怎么在mysql查询里执行

方法一:(直接查询,比较实用,查看当前自定义的存储过程)
select `specific_name` from MySQL.proc where `db` = 'your_db_name' and `type` = 'procere'
方法二:(查看数据库里所有存储过程+内容)
show procere status;
方法三:(查看当前数据库里存储过程列表)
select specific_name from mysql.proc ;
方法四:(查看某一个存储过程的具体内容)
select body from mysql.proc where specific_name = 'your_proc_name';
查看存储过程或函数的创建代码 :
show create procere your_proc_name;
show create function your_func_name;

⑧ mysql存储过程知识点难学吗

MySQL存储过程 一、存储过程 1.1 什么是存储过程 存储过程(Stored Procere)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通...,确实有一定的难度!

⑨ 如何查看mysql存储过程中sql的执行计划

查看存储过程创建语句可运行下列sql语句:语法showcreate{procere|function}sp_name;例如查看存储过程mypro的创建语句showcreateproceremypro;查看自定义函数myfunc的创建语句showcreatefunctionmyfunc;

⑩ mysql存储过程的基本用法有哪些

mysql存储过程的基本用法有哪些
在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。

特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。

一、MySQL 创建存储过程

"pr_add" 是个简单的 MySQL 存储过程,这个MySQL 存储过程有两个 int 类型的输入参数 "a"、"b",返回这两个参数的和。
复制代码 代码如下:
drop procere if exists pr_add;

计算两个数之和
复制代码 代码如下:
create procere pr_add
(
a int,
b int
)
begin
declare c int;
if a is null then
set a = 0;
end if;
if b is null then
set b = 0;
end if;
set c = a + b;
select c as sum;
/*
return c;
不能在 MySQL 存储过程中使用。return 只能出现在函数中。

*/
end;

二、调用 MySQL 存储过程
复制代码 代码如下:
call pr_add(10, 20);

执行 MySQL 存储过程,存储过程参数为 MySQL 用户变量。
复制代码 代码如下:
set @a = 10;
set @b = 20;
call pr_add(@a, @b);

三、MySQL 存储过程特点

创建 MySQL 存储过程的简单语法为:
复制代码 代码如下:
create procere 存储过程名字()
(
[in|out|inout] 参数 datatype
)
begin
MySQL 语句;
end;

MySQL 存储过程参数如果不显式指定"in"、"out"、"inout",则默认为"in"。习惯上,对于是"in" 的参数,我们都不会显式指定。

1. MySQL 存储过程名字后面的"()"是必须的,即使没有一个参数,也需要"()"

2. MySQL 存储过程参数,不能在参数名称前加"@",如:"@a int"。下面的创建存储过程语法在 MySQL 中是错误的(在 SQL Server 中是正确的)。 MySQL 存储过程中的变量,不需要在变量名字前加"@",虽然 MySQL 客户端用户变量要加个"@"。
复制代码 代码如下:
create procere pr_add
(
@a int, -- 错误
b int -- 正确
)

3. MySQL 存储过程的参数不能指定默认值。

4. MySQL 存储过程不需要在 procere body 前面加 "as"。而 SQL Server 存储过程必须加 "as" 关键字。
复制代码 代码如下:
create procere pr_add
(
a int,
b int
)
as -- 错误,MySQL 不需要 "as"
begin
mysql statement ...;
end;

5. 如果 MySQL 存储过程中包含多条 MySQL 语句,则需要 begin end 关键字。
复制代码 代码如下:
create procere pr_add
(
a int,
b int
)
begin
mysql statement 1 ...;
mysql statement 2 ...;
end;

6. MySQL 存储过程中的每条语句的末尾,都要加上分号 ";"
复制代码 代码如下:
...
declare c int;
if a is null then
set a = 0;
end if;
...
end;

7. MySQL 存储过程中的注释。
复制代码 代码如下:
/*
这是个
多行 MySQL 注释。
*/
declare c int; -- 这是单行 MySQL 注释 (注意 -- 后至少要有一个空格)
if a is null then # 这也是个单行 MySQL 注释
set a = 0;
end if;

热点内容
编程菌 发布:2025-09-25 00:39:34 浏览:492
java多个接口 发布:2025-09-25 00:34:34 浏览:365
带宽的算法 发布:2025-09-25 00:32:08 浏览:502
CHP算法 发布:2025-09-25 00:31:13 浏览:759
class反编译为java 发布:2025-09-25 00:25:58 浏览:59
盘JAVA 发布:2025-09-25 00:22:50 浏览:815
java我的世界怎么免费开服务器 发布:2025-09-25 00:00:52 浏览:945
妇癌数据库 发布:2025-09-24 23:53:53 浏览:789
fcsan存储 发布:2025-09-24 23:52:19 浏览:940
androidjson数组 发布:2025-09-24 23:41:32 浏览:853