Mysql 触发器加判断语句 插入值? 255
设置mysql触发器,比如每插入一条数据时,触发器判断插入数据中的证件编号一列,自动判断男女,并将其插入表相应的性别一列...
设置mysql触发器 ,比如每插入一条数据时,触发器判断插入数据中的证件编号一列,自动判断男女,并将其插入表相应的性别一列
展开
2个回答
展开全部
我的表结构如下:
create table students(id int auto_increment,
name varchar(10) not null DEFAULT '',
age int not null DEFAULT 0,
sex varchar(2) not null DEFAULT '',
studId varchar(18) not null DEFAULT '',
PRIMARY KEY (`id`));
触发器:
DELIMITER $$
CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`
FOR EACH ROW
BEGIN
if mod(substring(new.studId,17,1),2)=0 then
set new.sex = '女';
else
set new.sex = '男';
end if;
END;
$$
DELIMITER ;
以上程序已测试通过,
另外友情提醒一下,在触发器中处理这个判断,效率不高,最好在程序中处理这部分逻辑.
create table students(id int auto_increment,
name varchar(10) not null DEFAULT '',
age int not null DEFAULT 0,
sex varchar(2) not null DEFAULT '',
studId varchar(18) not null DEFAULT '',
PRIMARY KEY (`id`));
触发器:
DELIMITER $$
CREATE TRIGGER `students_insert` BEFORE INSERT ON `students`
FOR EACH ROW
BEGIN
if mod(substring(new.studId,17,1),2)=0 then
set new.sex = '女';
else
set new.sex = '男';
end if;
END;
$$
DELIMITER ;
以上程序已测试通过,
另外友情提醒一下,在触发器中处理这个判断,效率不高,最好在程序中处理这部分逻辑.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询