mysql 插入触发,MySQL在插入值检查之前触发

I have a table staff with office column. Currently the office column do not accept NULL values. The application persisting onto this table has a bug which meant that, when the staff has not been assigned an office, it tries inserting a NULL value onto the table.

I have been asked to used a trigger to intercept the insert onto the Staff table and check if the office value is NULL and replace it with value N/A.

Below is my attempt so far, but do have error in attempt to implement. Any Ideas on how to resolve this.

CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff

FOR EACH ROW BEGIN

IF (NEW.office IS NULL)

INSERT INTO Staff SET office="N/A";

END IF

END;

The error:

MySQL Database Error: You have an error in your SQL syntax; check the

manual that corresponds to your MySQL server version for the right

syntax to use near 'INSERT INTO Staff SET office="N/A"; END'

解决方案

First, alter the table to allow NULLs:

ALTER TABLE Staff MODIFY office CHAR(40) DEFAULT "N/A";

(Change CHAR(40) to whatever is appropriate.) Then you could use as your trigger:

CREATE TRIGGER staffOfficeNullReplacerTrigger

BEFORE INSERT

ON Staff

FOR EACH ROW BEGIN

IF (NEW.office IS NULL) THEN

SET NEW.office = "N/A";

END IF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值