任何人都可以帮我解决这个问题

时间:2014-04-12 02:49:43

标签: mysql sql sql-server triggers

我是数据库新手。因此,尽我所能设计库存管理系统。我想做以下

数据库名称为“yh_electronic”

表名是 - 订单

属性是: -

Order_Total DECIMAL(15,2)
Total_Paid DECIMAL(15,2)
Balance_Due DECIMAL(15,2)

我希望在order_Total和Total_Paid列插入新值或更新Total_paid值时自动填充Balance_Due列。所以,我试图使用以下查询创建一个触发器:

DELIMITER $$ 

DROP TRIGGER IF EXISTS yh_electronics.orders_AINS$$ 

USE `yh_electronics`$$ 


CREATE TRIGGER `orders_AINS` AFTER INSERT ON `orders` FOR EACH ROW 

UPDATE Balance_Due SET NEW.Balance_Due=NEW.Order_Total-NEW.Total_paid$$ 

DELIMITER ; 

查询执行得很好。

但是当我插入一个包含Order_Total和Total_Paid值的新行时,我看到了 错误代码:1442。无法在存储的函数/触发器中更新表'order',因为它已被调用此存储函数/触发器的语句使用

任何人都可以帮我解决这个问题,如果无法创建触发器,那么有人会帮助我如何为此创建一个程序。谢谢

1 个答案:

答案 0 :(得分:0)

将其更改为BEFORE

CREATE TRIGGER `orders_AINS` BEFORE INSERT ON `orders` FOR EACH ROW