MySQL中触发器的使用

触发器是在插入,删除或者修改的特定表的数据时触发执行,它可以看做是一种特殊的存储过程。创建触发器的语句如下

 

DELIMITER $$

USE `mps`$$

DROP TRIGGER /*!50032 IF EXISTS */ `name`$$

CREATE
    /*!50017 DEFINER = 'root'@'localhost' */
    TRIGGER `name` AFTER/BEFORE DELETE/INSERT/UPDATE ON  tablename
    FOR EACH ROW BEGIN
   
    END;
$$

DELIMITER ;

在創建存儲過程的時候,你可以選擇在表完成改变前或者后执行触发器。

 

使用new和old可以访问受触发程序影响的行中的列。

INSERT :仅能使用new来访问受影响的列new.columnname;

DELETE:仅能使用old来访问受影响的列old.columnname

UPDATE:既可以使用old也可以使用new,old.columnname指的是删除前的行的值,new.columnname是指更新后行的值

 

MySQL控制语句的使用

1. CASE WHEN的使用

 

UPDATE mat SET mat.`type`=( 
CASE  
WHEN mat.desc='JIT' THEN 'J'
WHEN mat.desc='國內' THEN 'I'
 WHEN mat.desc='國外' THEN 'A'  
 ELSE 'Z'
END
  )


2.if的使用

 

 if(expr1,expr2,expr3)如果exper1成立,返回exper2否则返回exper3。

 SELECT * ,IF(state=1,"yes","no") FROM fo_mps 如果state=1,則state的值為yes,否則是no

3,字符串的截取

LOCATE(substr,str) 字符串substr在str中第一次出现的位置,

LOCATE(substr,str,pos) 返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 :

left

UPDATE mat SET mat.`aday`=LEFT(ahead,LOCATE('天', ahead)-1 ) WHERE mat.`ahead`LIKE '%天'//截取从左边数从0,到指定位置的字符,right和它相似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值