mysql默认支持触发器,MySQL触发器不知道默认值

I use this trigger

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 ;

If I insert into the table the trigger throws an error:

Field 'primary_image' doesn't have a default value.

But it does!

What is wrong here? It seems like the trigger isn't aware of default values!

EDIT

Table Create script

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;

解决方案

Doesn't default(property.primary_image) work?

(Getting the default of the Real table, not the NEW holding-table)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值