您现在的位置是: IT外包 ->数据库 ->mysql(5) ->
 
本文关键字: MySQL5存储过程的写法
Google
 
MySQL5存储过程的写法
作者: 不详 | 发布时间: 2007-10-26 10:57 | 信息类别: mysql(5) | 访问人次:
评论 推荐 打印 编辑 】 【 关闭
  

  
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) DETERMINISTICBEGIN 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
评论 推荐 打印 编辑 】 【 关闭
『相关链接』
序号
标题 发布日期
1
2007-11-09 16:46:01
【郑重声明】【上海IT外包服务网】 刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何投资或其他建议。转载需经作者本人同意并注明出处。本网站有部分文章是由网友自由上传。对于此类文章本站仅提供交流平台,不为其版权负责。如果您发现本网站上有侵犯您的知识产权的文章,请发信至 或直接电话联系: 021-58879030
请您留言
『发表评论』
匿名发表 会员ID: 密码:

上海蝶应信息科技有限公司
上海市商城路341号紫光大厦1305室 +0086-21-58878998 11394019
dieying@541help.com +0086-21-58879030HappyFreeAngel@hotmail.com
Copyright@2007 IT-WAIBAO.COM Inc.沪ICP备05039378号 版权所有2007-2010 管理员登陆