`
zhuliyy1983
  • 浏览: 63969 次
  • 来自: ...
社区版块
存档分类
最新评论

MySQL5.0存储过程详细讲解

阅读更多
Introduction 简介

MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的。简单的来说是介绍了“存储过程、触发器、视图、信息架构视图”,在此感谢译者陈朋奕的努力.

  希望这本书能像内行专家那样与您进行对话,用简单的问题、例子让你学到需要的知识。为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握。

Conventions and Styles 约定和编程风格

  每次我想要演示实际代码时,我会对mysql客户端的屏幕就出现的代码进行调整,将字体改成Courier,使他们看起来与普通文本不一样。

  在这里举个例子:mysql> DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec)

  如果实例比较大,则需要在某些行和段落间加注释,同时我会用将“<--”符号放在页面的右边以表示强调。

  例如:

mysql> CREATE PROCEDURE p ()
-> BEGIN
-> /* This procedure does nothing */ <--
-> END;//Query OK, 0 rows affected (0.00 sec)

  有时候我会将例子中的"mysql>"和"->"这些系统显示去掉,你可以直接将代码复制到mysql客户端程序中(如果你现在所读的不是电子版的,可以在mysql.com网站下载相关脚本)所以的例子都已经在Suse 9.2 Linux、Mysql 5.0.3公共版上测试通过。

  在您阅读本书的时候,Mysql已经有更高的版本,同时能支持更多OS了,包括Windows,Sparc,HP-UX。因此这里的例子将能正常的运行在您的电脑上。但如果运行仍然出现故障,可以咨询你认识的资深Mysql用户,以得到长久的支持和帮助。
Why MySQL Statements are Legal in a Procedure Body
  什么MySQL语句在存储过程体中是合法的?

  什么样的SQL语句在Mysql存储过程中才是合法的呢?你可以创建一个包含INSERT, UPDATE,DELETE, SELECT, DROP, CREATE, REPLACE等的语句。你唯一需要记住的是如果代码中包含MySQL扩充功能,那么代码将不能移植。在标准SQL语句中:任何数据库定义语言都是合法的,如:

CREATE PROCEDURE p () DELETE FROM t; //

  SET、COMMIT以及ROLLBACK也是合法的,如:

CREATE PROCEDURE p () SET @x = 5; //

  MySQL的附加功能:任何数据操作语言的语句都将合法。

CREATE PROCEDURE p () DROP TABLE t; //

  MySQL扩充功能:直接的SELECT也是合法的:

CREATE PROCEDURE p () SELECT ''a''; //

  顺便提一下,我将存储过程中包括DDL语句的功能称为MySQL附加功能的原因是在SQL标准中把这个定义为非核心的,即可选组件。

The New SQL Statements 新SQL语句

Variables 变量

  在复合语句中声明变量的指令是DECLARE。

  (1) Example with two DECLARE statements

  两个DECLARE语句的例子

CREATE PROCEDURE p8 ()

BEGIN

DECLARE a INT;

DECLARE b INT;

SET a = 5;

SET b = 5;

INSERT INTO t VALUES (a);

SELECT s1 * a FROM t WHERE s1 >= b;

END; // /* I won''t CALL this */

  在过程中定义的变量并不是真正的定义,你只是在BEGIN/END块内定义了而已(译注:也就是形参)。

Error Handling 异常处理

  好了,我们现在要讲的是异常处理

1. Sample Problem: Log Of Failures 问题样例:故障记录

  当INSERT失败时,我希望能将其记录在日志文件中我们用来展示出错处理的问题样例是很
普通的。我希望得到错误的记录。当INSERT失败时,我想在另一个文件中记下这些错误的
信息,例如出错时间,出错原因等。我对插入特别感兴趣的原因是它将违反外键关联的约束

2. Sample Problem: Log Of Failures (2)

mysql> CREATE TABLE t2
s1 INT, PRIMARY KEY (s1))
engine=innodb;//
mysql> CREATE TABLE t3 (s1 INT, KEY (s1),
FOREIGN KEY (s1) REFERENCES t2 (s1))
engine=innodb;//
mysql> INSERT INTO t3 VALUES (5);//
...
ERROR 1216 (23000): Cannot add or update a child row: a foreign key
constraint fails(这里显示的是系统的出错信息)

  我开始要创建一个主键表,以及一个外键表。我们使用的是InnoDB,因此外键关联检查是打
开的。然后当我向外键表中插入非主键表中的值时,动作将会失败。当然这种条件下可以很
快找到错误号1216。

3. Sample Problem: Log Of Failures

CREATE TABLE error_log (error_message
CHAR(80))//

  下一步就是建立一个在做插入动作出错时存储错误的表。

分享到:
评论

相关推荐

    mysql5.0中文使用手册

    这份“mysql5.0中文使用手册”为那些对英文文档不熟悉的用户提供了一条便捷的学习路径,它涵盖了MySQL 5.0的所有主要功能和操作。 手册可能包括以下内容: 1. **安装与配置**:介绍如何在不同操作系统上安装MySQL ...

    MySQL5.0安装详解.doc

    在本文中,我们将详细讲解如何在Windows环境下安装MySQL 5.0。 首先,你需要下载 MySQL 5.0 的安装文件,通常是.zip格式的压缩包。解压缩后,找到名为"setup.exe"的安装程序并双击运行。安装向导会引导你完成整个...

    mysql5.0中英文对照手册

    MySQL 5.0是数据库管理系统领域中广泛应用的一个版本,它为开发者提供了强大的数据存储和管理功能。本手册旨在深入解析MySQL 5.0的各种特性和功能,帮助用户更好地理解和使用这个数据库系统。以下是对手册中可能包含...

    mysql经典教程+mysql存储过程讲解

    在“MySQL5.0存储过程.pdf”中,你将学到如何创建、调用和管理存储过程,以及它们在实际应用中的用法。 存储过程的创建涉及定义输入参数、输出参数和局部变量。你可以编写一系列的SELECT、INSERT、UPDATE、DELETE等...

    mysql5.0安装教程(图文详解).pdf

    然而,结合标题和描述中的信息“mysql5.0安装教程(图文详解).pdf”,我们可以构建一个关于MySQL 5.0安装的知识点概要。以下是基于MySQL 5.0数据库安装过程的知识点汇总,不包含实际图文教程内容,但可以为安装MySQL ...

    MySQL5.0安装图解

    本文将详细讲解MySQL5.0的安装步骤,帮助用户顺利地在Windows环境中建立MySQL服务器。 首先,安装MySQL5.0的准备工作包括下载安装文件。在这里,我们使用的版本是mysql-5.0.27-win32.zip,这是一款适用于32位...

    MYSQL5.0经典教程

    总的来说,"MYSQL5.0经典教程"是一套全面的指南,涵盖了从基础到高级的所有关键概念,对于想要深入理解MySQL数据库管理和开发的人来说,是一份宝贵的资源。通过学习这套教程,你可以系统地提升自己的数据库技能,...

    MYSQL 5.0Z中文手册

    手册将详细介绍MySQL 5.0的安装过程,包括编译安装和二进制安装两种方式,以及如何配置MySQL服务器,设置数据存储位置,调整启动参数等。 3. **SQL基础**: SQL是MySQL的核心,手册会讲解基本的SQL语句,如SELECT...

    mysql5.0安装图解

    在本文中,我们将详细讲解如何安装 MySQL 5.0 版本,包括安装向导的步骤、安装类型的选择以及配置向导的设置。 首先,启动 MySQL 安装程序,通常是一个名为 `setup.exe` 的可执行文件。安装向导启动后,你可以选择...

    MySQL 5.0 中文参考文档资料(HTML格式)

    首先,文档会详细解释MySQL的安装与配置过程,包括在不同操作系统上的安装方法,以及如何配置服务器以满足特定需求。用户将了解到如何创建和管理数据目录,设置启动参数,并掌握如何通过命令行或图形界面工具启动和...

    mysql-5.0及安装方法

    本文将详细讲解MySQL 5.0的安装方法以及安装过程中可能遇到的常见错误和异常处理。 首先,MySQL 5.0的安装步骤如下: 1. 下载安装包:你可以从MySQL的官方网站或第三方平台如CSDN下载MySQL 5.0的安装文件,例如...

    mysql参考5.0.rar

    8. **InnoDB引擎的增强**:InnoDB是MySQL中支持事务处理的主要存储引擎,5.0版本对其进行了优化,包括更快的行锁定、更好的并发处理和更高的事务吞吐量。 9. **性能提升**:包括查询优化器的改进、缓存机制的增强...

    mysql存储过程实例

    MySQL 存储过程实例详细介绍了 MySQL 存储过程的开发步骤,本节将通过具体的实例讲解 PHP 是如何操纵 MySQL 存储过程的。 创建存储过程 存储过程的创建是 MySQL 存储过程的基础,MySQL 5.0 以后的版本开始支持存储...

    vmware6.0+redhat5+openssh+jdk1.4+tomcat5.0+mysql5.0

    在本教程中,MySQL 5.0将用于存储web应用的数据。 整个过程涵盖了从虚拟机的创建、操作系统安装、软件配置到应用部署的各个环节,通过详细的步骤截图,可以帮助读者直观地理解每个步骤的操作,便于在实际环境中进行...

    MySQL 5.1中文参考(含中文白皮书第一部分)

    这份资料包含的是MySQL 5.1的官方简体中文参考手册和MySQL 5.0存储过程的中文翻译,是学习和掌握MySQL 5.1的重要参考资料。 **MySQL 5.1中文参考手册**: MySQL 5.1的中文参考手册是全面了解该版本MySQL特性和功能...

    mysql中文帮助5.1+5.0

    文档还详细阐述了存储引擎的区别,例如MyISAM适合读取密集型应用,而InnoDB更适合写入密集且需要事务处理的场景。 “mysql中文帮助手册.chm”则可能是对MySQL 5.0版本的中文解释,尽管5.0相对于5.1略显过时,但它...

    php 5.0操作mysql数据库

    在PHP编程中,MySQL数据库是常用的后端存储系统,尤其在PHP 5.0时代,其结合使用提供了强大的数据处理能力。本篇文章将深入探讨PHP 5.0如何与MySQL数据库进行交互,包括连接、查询、插入、更新和删除数据等核心操作...

Global site tag (gtag.js) - Google Analytics