mysql存储过程怎么加⽇志_mysql存储过程的使⽤教程
mysql存储过程的使⽤教程
希望这本书能像内⾏专家那样与您进⾏对话,⽤简单的问题、例⼦让你学到需要的知识。为了达到这样的⽬的,我会从每⼀个细节开始慢慢的为⼤家建⽴概念,最后会给⼤家展⽰较⼤的实⽤例,在学习之前也许⼤家会认为这个⽤例很难,但是只要跟着课程去学,相信很快就能掌握。
Conventions and Styles 约定和编程风格
每次我想要演⽰实际代码时,我会对mysql客户端的屏幕就出现的代码进⾏调整,将字体改成Courier,使他们看起来与普通⽂本不⼀样。
在这⾥举个例⼦:mysql> DROP FUNCTION f;Query OK, 0 rows affected (0.00 sec)
如果实例⽐较⼤,则需要在某些⾏和段落间加注释,同时我会⽤将“
mysql> CREATE PROCEDURE p ()
-> BEGIN
oracle联合查询语句-
> /* This procedure does nothing */ END;//Query OK, 0 rows affected (0.00 sec)
有时候我会将例⼦中的”mysql>”和”->”这些系统显⽰去掉,你可以直接将代码复制到mysql客户端程序中(如果你现在所读的不 是电⼦版的,可以在mysql⽹站下载相关脚本)所以的例⼦都已经在Suse 9.2 Linux、Mysql 5.0.3公共版上测试通过。
c语言变量变常量在您阅读本书的时候,Mysql已经有更⾼的版本,同时能⽀持更多OS了,包括Windows,Sparc,HP-UX。因此这⾥的例⼦将能正常的运⾏在您的电脑上。但如果运⾏仍然出现故障,可以咨询你认识的资深Mysql⽤户,以得到长久的⽀持和帮助。
winexec notepadWhy 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也是合法的,如:
mysql查看所有存储过程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))//
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论