问题是这样...我想更新我的数据库中的库存表,其中包括
Sale(ProductID,Quantity,Price)
Invlevel(ProductID,Quantity)
Run Code Online (Sandbox Code Playgroud)
我想使用触发器来进行此更新。我必须使用 2 个触发器(我认为)。1 在销售台上,类似于
CREATE TRIGGER `sale_AINS` AFTER INSERT ON sale FOR EACH ROW
begin
update Invlevel set quantity = Invlevel.quantity-"sale.quantity" where
Invlevel.ProductID = "sale.ProductID";
END
Run Code Online (Sandbox Code Playgroud)
有了这个触发器,当销售出现时,我想调整销售所涉及的产品的库存水平。然而,即使这个触发器没有错误并且当我插入销售表时运行正常,它也不会在 Invlevel 表上进行任何更改,我不知道为什么(:@)。
此外,我在 Invlevel 表中创建了触发器,如下所示
CREATE TRIGGER `invlevel_AUPD` after UPDATE on invlevel FOR EACH ROW
if invlevel.quantity < 20
begin
insert into orders
(select productid,amount from reorder where reorder.productid = invlevel.productid )
end
Run Code Online (Sandbox Code Playgroud)
*(订单、重新排序是其他表)
它对我说我有语法错误,我不知道它是什么,而且即使我找到它,我什至无法检查逻辑,因为另一个触发器甚至无法工作......对此有任何想法或帮助真的很有帮助。