My SQL5数据库存储过程的写法
时间:2007-12-23 来源:不详 作者:迈克DB
用 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
asp?tags=mysql">mysqlasp">存储过程asp?tags=数据库">数据库
文章评论
共有位Admini5网友发表了评论 查看完整内容