Mysql 触发器加判断语句 插入值?

Mysql 触发器加判断语句 插入值?,第1张

我的表结构如下:

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

以上程序已测试通过,

另外友情提醒一下,在触发器中处理这个判断,效率不高,最好在程序中处理这部分逻辑.

mysql可以使用if语句

比如:

if (条件) then

    *** 作

 else

    *** 作

end if

MYSQL没有TRIGGER回滚 create trigger update_exceed BEFORE INSERT on Afor each rowbegin select count(*) into @ee from A where UserID=new.UserID if @ee>=5 then insert into A(id) values(0) end ifend 加粗部分,就是拦截部分。由于MYSQL在触发器内不允许对自身的修改,所以会产生一个1442的错误,插入失败。</SPAN>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6096100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存