mysql中存储过程分隔符,(mysql)存储过程

(mysql)存储过程

(1)

存储过程是数据库服务器端的一段程序.

mysql的存储过程,只有版本是mysql5.0或以上的才有此特性.

(2)

什么时候需要用存储过程

存储过程通常是一些经常要执行的任务,这些任务往往是针对大量的记录而进行的。在服务器上执行存储过程,可以

改善应用程序的性能。这是因为:

2.1.

服务器往往具有强大的计算能力和速度。

2.2

避免把大量的数据下载到客户端,减少网络上的传输量。

2.3

存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所

以使用存储过程可提高数据库执行速度。

2.4

存储过程可以重复使用,可减少数据库开发人员的工作量

2.5

安全性高,可设定只有某此用户才具有对指定存储过程的使用权

(3)

3.1

使用存储过程之前,须换一种分隔符.因为在存储过程中,存在多个SQL语句,所有须用另一个分隔符来表示结束符号.

分隔符:         --->只对当前连接有效.下次连接时,仍以";"为分隔符.

DELIMITER //

用回原来的";",可以用: delimiter ;

3.2

第二部分是过程名,合法标识符的问题:

存储过程名对大小写不敏感,因此‘P1’和‘p1’是同一个名字,在同一个数据库中你将能给两个存储过程取相同的

名字,因为这样将会导致重载。某些DBMS允许重载(Oracle支持),但是MySQL不支持。

你可以采取“数据库名.存储过程名”这样的折中方法,如“db5.p1”。

(4)

4.1

创建存储过程时,先用选择相应的数据库。因为创建的存储过程是属于某一数据库的。

4.2

调用存储过程:

基本语法:call sp_name()

注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

如下:

call p1 () //

4.3

删除存储过程

1.基本语法:

drop procedure sp_name//

注意事项:

不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

4.4

存储过程的查看:

1)

显示当前数据库存储过程:

show procedure status//

会显示数据库中所有的存储过程的所属数据库,存储过程名,类型(type),定义者(如:root@localhost),创建时间,修改

时间等.

2)

show create procedure sp_name

显示某一个存储过程的详细信息

3)

也可用:

select body from mysql.proc where name="过程名";

(5)

作用域:

CREATE PROCEDURE p11 ()

BEGIN

DECLARE x1 CHAR(5) DEFAULT 'outer';  -- 采用了默认子

相关文档:

MySQL-client-community-5.0.41-0.rhel4.i386.rpm                    # 客户端

MySQL-devel-community-5.0.82-0.rhel4.i386.rpm              &nbsp ......

[转帖网址]http://java-2007.javaeye.com/blog/622269

忘记MySQL(和PHP搭配之最佳组合) ROOT密码是在MySQL(和PHP搭配之最佳组合)使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流:

1、编辑MySQL(和PHP搭配之最佳组合)配置文件:

windows环境中:%MySQL(和PHP搭配� ......

ERROR 1005 (HY000): Can't create table '  ****.frm' (errno: 150)

我是从以下几个方面解决了此问题:

1、确保参照的表和字段是存在的;

2、组成外键的字段要求被索引(主要是外键那个字段要求在其他表中是主键);

3、外键关联的两表或多表要求都是INNODB类型的表;

4、字段类型(说明)要一样`itemId` varchar( ......

Can't open the mysql.plugin table. Please run mysql_upgrade to create it

当碰到这样的错误是没有初始化mysql数据库,可以运行如下脚本就可以解决

cd /opt/mysql-5.1.46

cd scripts/

./mysql_install_db --user=mysql --datadir=/usr/local/mysql/var/

运行如下的代码就可以解决上述问题 ......

在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

MySQL中的UNION

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的是过程表与历史表UNION。如 ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值