MySQL 触发器不能正常工作 : 1231 - Variable 'MESSAGE_TEXT' can't be set to the value of 'NULL'

我有一个管理库存的数据库, 有二张表, 一张进仓数据存入库存, warehouse_in, 一张出仓数据放出仓记录 warehouse_out, 想实现在出仓表里插入数据时, 先去查看是不是有足够的库存 warehouse_in.inventory, 如果有,则在库存中减掉出仓数据warehouse_out.stock_out,目前的解发器有时能成, 有时会报错 “1231 - Variable 'MESSAGE_TEXT' can't be set to the value of 'NULL'”
CREATE TRIGGER warehouse_out_trigger
BEFORE INSERT ON warehouse_out
FOR EACH ROW
BEGIN

DECLARE var_inventory INT;
DECLARE msg VARCHAR(50) DEFAULT('!');
DECLARE sku_name VARCHAR(50) DEFAULT(new.wh_out_id);

SELECT wi.inventory INTO var_inventory
FROM warehouse_in wi
WHERE wi.wh_in_id = new.wh_out_id;

IF var_inventory >= new.stock_out THEN
    UPDATE warehouse_in SET inventory = inventory - new.stock_out
    WHERE warehouse_in.wh_in_id = new.wh_out_id;
ELSE
  SET msg = CONCAT(sku_name,':','!库存不足!',' 出库: ', new.stock_out, '  库存:', var_inventory);
    SIGNAL SQLSTATE 'HY000' set message_text = msg;
END IF;


END
有时能成功运行, 有时会报错: 1231 - Variable 'MESSAGE_TEXT' can't be set to the value of 'NULL'
网上查了, 没有相应的提问过, 自己想办法解决,但水平有限,多次尝试均无解决问题, 目前无从下手
希望高人指定,使代码更加强壮, 感激不尽

1231 - Variable 'MESSAGE_TEXT' can't be set to the value of 'NULL'
message_text字段不能为空。