Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于web程序的Mysql脚本_Mysql - Fatal编程技术网

基于web程序的Mysql脚本

基于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表如下所示:

我有一个基于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 |
我需要一个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,然后你在库存表中插入新行,但我认为这是一种很难控制的方式,因为在某个地方,你需要告诉你的表只列出最后输入的寄存器,并且余额必须正确。。几周前,我做了与您现在尝试的相同的事情,并更改了所有数据模型,因为这种方法对我来说太难了,而且会将数据丢失返回给我。。您只需要在脚本方面进行大量验证。