mySQL - UPDATE TRIGGER,如何将.NEW值与同一行中的另一个数据进行比较

时间:2015-01-22 12:21:48

标签: mysql sql triggers

我尝试做的是在更新行的值之前触发一个触发器语句。

该陈述将需要查看要更新的新存款金额是否大于另一列中的现有债务,这是我迄今为止所尝试的。

DELIMITER $$
CREATE TRIGGER BankTrail 
BEFORE UPDATE ON loan
FOR EACH ROW BEGIN

IF (NEW.`paid`> OLD.debt) THEN
    INSERT INTO table1 VALUES (.....);
END IF;
END$$
DELIMITER ;

表(贷款)结构是3列

债务支付CUSTNO

如果PAID的金额大于DEBT,我需要触发器才能工作。

我尝试过使用OLD.DEBT(但这没用,因为更新期间债务金额没有变化)

我还考虑使用

中的SELECT语句
IF (NEW.`paid`> SELECT 
debt 
FROM loan
WHERE ...?
) THEN

但同样,没有标识符可以通过使用CUSTNO或DEBT来选择行,因为在初始UPDATE语句中没有更改这些行。

UPDATE loan
 SET paid = (amount paid)
 WHERE custno = (customer number);

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

更新前更改为更新后,您的触发器应该有效