学习网考试学习资料

Gzu521.com

MySQL5存储过程的写法

MySQL教程   点击:次   发布时间:2005-11-3   【字体: 】   来源:Gzu521.com
Gzu521.com我的学习网
MySQL 5 已经正式推出了,支援 stored procedures 、 functions 、 views 、 triggers 等。 目前 phpmyadmin 2.6.4 好像还不支援这些新特色 (view 可以看得到,但是没有建立的介面?) ,不过 mysql 官方自己推了一个 mysql query browser ,还不错用, 缺点是中文的支援性不佳 (输入中文时会怪怪的) 。

用 mysql query browser 写一个 stored procedure :
delimiter $$

drop procedure if exists `sptest` $$
create procedure `sptest`(p_title varchar(200), p_description text)
    deterministic
begin
  insert into category (title, description) 
  values (p_title, p_description);
end $$

delimiter ; 
其中delimiter是用来决定sql分隔符号的,在写stored procedure前,要先把预设的分号换掉,不然按下mysql query browser的execute按钮时,会真的去跑里面的 insert 指令。写完 stored procedure 的 routine_body 后,再回复成预设的分号。 另外我在写这个 stored procedurce 时,发现一定要加上 characteristic 才行,也就是上面的 deterministic 。可是官方手册明明写可略过,这我就没时间研究为什么了。 另外就是参数的名称, mysql 5 不像 mssql 是用 @param 来表示 stored procedure 的参数?这样有点难以分辨参数及资料表栏位,不过也不是不能解决。 执行这个 stored procedure 的方法是用 call: call sptest 'test', 'abc'; 当然语法不同,就会造成写 php 程式的不方便,改天来找找看有没有比较好的抽象层资料库存取介面 (就是像 pear::db 或 adodb 之类的物件类别库) ,可以支援不同类型资料库的 stored procedure 。

stored procedure 的写法可参考:http://dev.mysql.com/doc/refman/5.0/en/stored-procedures.html

trigger 的写法可参考:http://dev.mysql.com/doc/refman/5.0/en/triggers.html

view 的写法可参考:http://dev.mysql.com/doc/refman/5.0/en/views.html

责任编辑:gzu521

网络编程分类
ASP教程
.Net教程
Java教程
PHP教程
数据库基础
ACCESS教程
SQL Server教程
MySQL教程
Oracle教程
分类推荐信息
更多...
大类最新文章
更多...