触发器语法MySQL触发器怎么写年龄性别触发器最简单语法

查看触发器

show triggers

删除触发器

drop trigger 触发器名

触发器模板

触发器模板,有什么别的条件把其中的一块改动就可以了
性别只能为‘男’或‘女’

DELIMITER $$
CREATE TRIGGER sex__check BEFORE INSERT ON tb_student FOR EACH ROW
BEGIN
DECLARE ssex CHAR(5);
SET ssex=new.stusex;
IF(ssex='男' OR ssex='女')THEN
SET@choice=1;
ELSE
SET@choice=0;
INSERT INTO tb_student VALUES(1);
END IF;
END;
$$

性别只能为男或者女,并且绩点在0-5.0之间

DELIMITER $$
CREATE TRIGGER sex_sco_check BEFORE INSERT ON tb_student FOR EACH ROW
BEGIN
DECLARE ssex CHAR(5);
DECLARE ssco FLOAT;
SET ssex=new.stussex;
SET ssco=new.stusco;
IF(ssex='男' OR ssex='女') AND (ssco>0 AND ssco<5.0) THEN
SET@choice=1;
ELSE
SET@choice=0;
INSERT INTO tb_student VALUES(1);
END IF;
END;
$$

权限类型只能为‘USER’或者’STOREADMIN’或者’TRADEADMIN’(两个或者也就是多个可能值)

DELIMITER $$
CREATE TRIGGER right_check BEFORE INSERT ON tb_userinfo FOR EACH ROW
BEGIN
DECLARE rright VARCHAR(20);
SET rright=new.righttype;
IF(rright='TRADEADMIN' OR rright='USER')THEN
SET@choice=1;
ELSEIF(rright='STOREADMIN') THEN
SET@choice=1;
ELSE
SET@choice=0;
END IF;
END;
$$

注意这里的ELSEIF 中 ELSE 和IF是连在一起的一个词
注意如果是两个OR的判断不要直接用类似IF(rright=‘TRADEADMIN’ OR rright=‘USER’ OR rright=‘STOREADMIN’)来判断,这样最后结果会变成输入STOREADMIN才成功输入。这是or判断语法的问题,详细的去回忆学C语言的时候这一块怎么学的

你可能感兴趣的:(MySQL)