我有一个通过网页更新的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.
是否还有其他人知道如何才能完成此操作?
答案 0 :(得分:1)
据我所知,所有价值检查都是在触发前完成的。为什么不在PHP代码中执行此操作?