MySQL表可以往回调吗_MySQL是否允许在C中进行回调,以便在发生更改时,我会收到通知?...

像这样创建一个触发器.

DELIMITER $$

CREATE TRIGGER ad_mytable_each AFTER DELETE ON MyTable FOR EACH ROW

BEGIN

#write code that trigger After delete (hence the "ad_" prefix)

#For table MyTable (The _MyTable_ middle)

#On each row that gets inserted (_each suffix)

#

#You can see the old delete values by accesing the "old" virtual table.

INSERT INTO log VALUES (old.id, 'MyTable', old.field1, old.field2, now());

END$$

DELIMITER ;

INSERT,DELETE,UPDATE有触发器

他们可以在行动之前或之后开火.

操作之前的触发器可以通过强制错误来取消操作,如此.

CREATE TRIGGER bd_mytable_each BEFORE DELETE ON MyTable FOR EACH ROW

BEGIN

#write code that trigger Before delete (hence the "db_" prefix)

declare DoError Boolean;

SET DoError = 0;

IF old.id = 1 THEN SET DoError = 1; END IF;

IF (DoError = 1) THEN SELECT * FROM Table_that_does_not_exist_to_force_error;

#seriously this example is in the manual.

END$$

DELIMITER ;

这将阻止删除记录1.

之前的UPDATE触发器甚至可以更改更新的值.

CREATE TRIGGER bu_mytable_each BEFORE UPDATE ON MyTable FOR EACH ROW

BEGIN

IF new.text = 'Doon sucks' THEN SET new.text = 'Doon rules';

END$$

DELIMITER ;

希望你能快乐起来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值