如果列没有输入值,则在插入上 它的值将为null
如果是NULL,我想将列的值设置为 插入记录中的另一列
在插入触发器上使用代码
CREATE DEFINER = CURRENT_USER TRIGGER
`infrastructure`.`Wall_Drop_BEFORE_INSERT` BEFORE INSERT ON `Wall_Drop`
FOR EACH ROW
BEGIN
If new.drop_label = null then
set new.drop_label = new.Drop_id;
end if;
END
该值未更新,之后仍为null值 更新
答案 0 :(得分:3)
与NULL
(如new.drop_label = null
)的比较将始终评估为NULL
。因此永远不可能TRUE
。你需要使用
If new.drop_label is null
或NULL-save opreator
If new.drop_label <=> null
详细了解the official documentation中的“使用NULL值”。
然而 - 你想要什么,也可以使用COALESCE()
一步完成:
BEGIN
set new.drop_label = coalesce(new.drop_label, new.Drop_id);
END