触发器在mysql中不起作用

时间:2013-10-07 07:29:55

标签: mysql sql triggers

我在empdetails数据库中有一个人员表。

我创建了一个触发器

use empdetails;

delimiter $$
create trigger `newtirger` after insert  on `emppersonal` 
for each row begin 
if new.mobile = null
then 
update emppersonal set mobile = '121';
end if;
end $$;

我的方案是在插入查询期间,如果列移动设备为空,则在移动字段中插入121 ..

insert into emppersonal(empname,empadddress,mobile,empdob) values('lop1wde','n1agar',null,null) ;

但是触发器没有向我显示任何错误,而且它也无法正常工作请帮忙。

2 个答案:

答案 0 :(得分:0)

更新空值的更好方法是使用列的默认值。这样,如果null,它将自动设置。

ALTER TABLE emppersonal
CHANGE mobile mobile  VARCHAR(50) NOT NULL DEFAULT '121';

如果无法做到,请尝试

delimiter $$
create trigger `newtrigger` before insert on emppersonal
for each row begin 
    set NEW.mobile = if(OLD.mobile IS NULL, '121', OLD.mobile);
end
$$

答案 1 :(得分:0)

use empdetails;

delimiter $$
create trigger `newtirger` after insert  on `emppersonal` 
for each row begin 
if new.mobile IS NULL
then 
--modify this line update emppersonal set mobile = '121';
update emppersonal set mobile = '121';
end if;
end $$;