mysql存储器和触发器的例子

1、创建一个带输入参数的存储过程执行向表中插入数据。

DELIMITER $$

CREATE PROCEDURE insert_pro

(IN kch CHAR(3),IN kcm CHAR(16),

IN xq TINYINT,IN xs TINYINT,IN xf TINYINT)

BEGIN

    INSERT INTO kc

    VALUES(kch,kcm,xq,xs,xf);

END$$ 

DELIMITER ;

-- 调用存储过程

CALL insert_pro('001','c',1,56,2);   

2、创建一个带输入参数的存储过程根据条件删除表中数据。

DELIMITER $$

CREATE PROCEDURE delete_pro

(IN kch CHAR(3))

BEGIN

    DELETE FROM kc WHERE 课程号=kch;

END$$ 

DELIMITER ;

CALL delete_pro('001');

3、创建一个带输入参数的存储过程根据条件修改表中数据。

DELIMITER $$

CREATE PROCEDURE update_pro

(IN kch CHAR(3),in xs tinyint)

BEGIN

    UPDATE kc SET 学时=xs WHERE 课程号=kch;

END$$ 

DELIMITER ;

CALL update_pro('001',88);

4、创建一个带输入参数的存储过程根据条件查询表中数据。

DELIMITER $$

CREATE PROCEDURE select_pro

(IN kch CHAR(3))

BEGIN

    Select * FROM kc WHERE 课程号=kch;

END$$ 

DELIMITER ;

CALL select_pro('101');

5

创建触发器,实现当向xs_kc表中插入数据时同时修改成绩表和学生表中的数据。

指定学分分析:

DELIMITER $$

CREATE TRIGGER XS_KC_ZXF BEFORE INSERT

  ON XS_KC FOR EACH ROW

BEGIN

  DECLARE xf INT;

  SELECT 学分 INTO XF FROM KC WHERE 课程号=NEW.课程号;

  IF NEW.成绩<60 THEN

  SET NEW.学分=0;

  ELSE

  SET NEW.学分=XF;

  UPDATE xs SET 总学分=总学分+xf WHERE 学号=NEW.学号;

  END IF;   

  END$$

DELIMITER ;

6 创建触发器,实现当修改xs_kc表中的数据时同时修改成绩表和学生表中的数据。

DELIMITER $$

 CREATE TRIGGER XS_KC_ZXF BEFORE UPDATE  ON XS_KC FOR EACH ROW

BEGIN

 DECLARE XF INT;

  SELECT 学分 INTO XF FROM KC WHERE 课程号=NEW.课程号;

 IF new.成绩<60  THEN        

 SET new.学分=0;        

 ELSE        

 SET new.学分=xf;       

  END IF ;        

 IF NEW.成绩<60 AND old.成绩>=60 THEN

 UPDATE xs SET 总学分=总学分 - xf WHERE 学号=new.学号;

 ELSEIF NEW.成绩>=60 AND old.成绩<60 THEN  

UPDATE xs SET 总学分=总学分 + xf WHERE 学号=new.学号;

 END IF;

 END$$

DELIMITER ;

 

转载于:https://www.cnblogs.com/loveLiac/archive/2012/03/19/2406589.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值