基于web程序的Mysql脚本
我有一个基于web的库存数据库设置,这样当插入新的采购订单(PO)时,它也会插入PO表和库存表。我的stocks表如下所示:基于web程序的Mysql脚本,mysql,Mysql,我有一个基于web的库存数据库设置,这样当插入新的采购订单(PO)时,它也会插入PO表和库存表。我的stocks表如下所示: Stock_ID | Date | PO_ID | DR_ID | Product_ID | Stock_In | Stock_Out | Stock_Balance | PO_ID | Supplier_ID | Date | Product_ID | Quantity | Unit | Unit Price | Total Amount | 我的PO表如下所示:
Stock_ID | Date | PO_ID | DR_ID | Product_ID | Stock_In | Stock_Out | Stock_Balance |
PO_ID | Supplier_ID | Date | Product_ID | Quantity | Unit | Unit Price | Total Amount |
我的PO表如下所示:
Stock_ID | Date | PO_ID | DR_ID | Product_ID | Stock_In | Stock_Out | Stock_Balance |
PO_ID | Supplier_ID | Date | Product_ID | Quantity | Unit | Unit Price | Total Amount |
我需要一个sql脚本,这样当我添加新采购订单时,库存余额字段会自动调整。
库存ID和采购订单ID是自动递增的 看看触发器:
也许是这样的:
CREATE TRIGGER ins_stockBalance BEFORE INSERT ON PurchaseOrders
UPDATE Stocks
SET Stock_Balance = Stock_Balance + NEW.quantity
WHERE PO_ID = NEW.PO_ID
首先,你为什么不把你的存货分成3个简单的部分,如下所示:
stock_entry
stock_output
stock_balance
在您的库存表中您不需要产品id,因为它来自采购订单表对吗
就我个人而言,我喜欢控制我的产品表中的数量,而且我有库存输入和库存输出来汇总我的余额,然后更新我的产品表中的数量(字段数量)
但我当然不知道您在数据模型中采用了什么方法
“库存余额”字段将自动删除
调整
要自动调整余额,您需要检查收入和结果*股票*,我认为最好的方法是将事物分开。。。。否则,您的余额可能会非常混乱。我不认为触发器是解决办法,因为我想获得股票余额的最后记录值。假设产品7的库存余额为2000。现在,当我插入新订单时,我希望将数量添加到以前的库存余额中,以获得新的库存余额。产品7的新库存余额将是我在采购订单中输入的任何数量+上一个库存余额。@DarkXaldin因此使用一个调用存储过程的触发器重试我的示例,并让我们知道它是如何实际遵循公司的库存卡的,因为我的项目的要求是将表格基于公司的库存卡,“所以我不能改变这些字段。”我完全明白。没问题,也许你可以尝试根据你的PK更新你的库存表中的字段,比如PO,然后你在库存表中插入新行,但我认为这是一种很难控制的方式,因为在某个地方,你需要告诉你的表只列出最后输入的寄存器,并且余额必须正确。。几周前,我做了与您现在尝试的相同的事情,并更改了所有数据模型,因为这种方法对我来说太难了,而且会将数据丢失返回给我。。您只需要在脚本方面进行大量验证。