关于mysql触发器问题

INSERT INTO 表 (字段1,字段2) VALUES (REPLACE(new.字段1,NULL,‘’),REPLACE(new.字段2,NULL,‘’));
有没有高人指点下为什么REPLACE没有效果

replace(a,b,c)
要把字符串a里面的所有子串b替换成c
b必须是一个字符串,不能是null,你能想象把一个字符串里面的所有"空字符"都替换成别的字符吗
理论上一个字符串里含有的空字符是无穷多的,你也可以说它不含空字符

表上控制了你这个字段不能为空,那为啥你硬是要塞个空值进去呢?这不违背逻辑了么?不是应该去看这里为什么会传空值进来么?
如果这个字段为空不影响程序和业务逻辑,那你把表改了不就好了?