我用这个扳机
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保持表的默认值)