MySQL触发器不知道默认值

提问

我用这个扳机

delimiter ||
create TRIGGER column_a_to_default 
BEFORE INSERT ON `property`
FOR EACH ROW
BEGIN  
  IF NEW.primary_image = '' THEN
    SET NEW.primary_image = default(NEW.primary_image);
  END IF;
END;
||
delimiter ;

如果我插入表中,触发器将引发错误:

Field ‘primary_image’ doesn’t have a default value.

但是可以!

怎么了似乎触发器不知道默认值!

编辑

表创建脚本

CREATE TABLE IF NOT EXISTS `property` (
  `id` varchar(10) NOT NULL,
  `images` text NOT NULL,
  `primary_image` varchar(100) NOT NULL DEFAULT '../no-image.png',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

最佳答案

默认(property.primary_image)不起作用吗?

(获取Real表的默认值,而不是NEW保持表的默认值)

评论