MYSQL触发器来更正条目

时间:2011-11-29 16:46:14

标签: mysql triggers integer

我有一个通过网页更新的mysql表。某些列格式为整数。如果您尝试输入“”,“”或任何无法自动舍入为整数的字符串,则会出现mysql错误。而不是编辑我的PHP以处理这些更正,我想在此表上进行BEFORE UPDATE触发器,如果​​它是一个不正确的整数值,则将字段值设置为零。在另一个堆栈溢出帖子中,我发现您可以使用ceil(field) = field测试整数值。这是创建触发器语法:

delimiter|
create trigger before_folding_update before update on daily_folding_report
for each row
begin
if ceil(new.jobnum) != new.jobnum then
  set new.jobnum = 0;
end if;
end|

如果我这样做:

update daily_folding_report set jobnum = 'a'

我仍然收到错误:Incorrect integer value: 'a' for column 'jobnum' at row 1.是否还有其他人知道如何才能完成此操作?

1 个答案:

答案 0 :(得分:1)

据我所知,所有价值检查都是在触发前完成的。为什么不在PHP代码中执行此操作?