首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql触发器跟存储过程

2013-04-26 
mysql触发器和存储过程DELIMITER //CREATETRIGGER `mytrigger2` AFTER INSERT ON `t_user` FOR EACH ROW B

mysql触发器和存储过程
DELIMITER //CREATETRIGGER `mytrigger2` AFTER INSERT ON `t_user` FOR EACH ROW BEGININSERT INTO t_card(id,card_name,card_num)VALUES(new.id,new.name,new.pwd);END//

?

注意:其中的DELIMITER // 其实跟触发器没关系的,他的意思说 当sql遇到一个“//”时就表示结束

?

上面的t_user中的这条数据是新添加的,所以用new

?

DELIMITER//CREATETRIGGER `mytrigger3` BEFORE DELETE ON `t_user` FOR EACH ROW BEGINDELETE FROM t_card WHERE id=old.id;END//

?

?

二、存储过程procedure:

?

DELIMITER//CREATE PROCEDURE `myprocedure1`(IN id INT,IN NAME VARCHAR(20),IN pwd VARCHAR(20),OUT num LONG)BEGININSERT INTO t_user(id,NAME,pwd)VALUES(id,NAME,pwd);SELECT COUNT(*) INTO num FROM t_card;END//

?

存储过程主要涉及到传入参数和返回参数,使用in 和 out 标识

返回参数用 select into 这种写法

?

在数据库中调用procedure ,感觉没什么意义

CALL myprocedure1(4,'jack','henan',@num);
SELECT @num;

?

?

?

?

?

?

热点排行