我正在尝试跟踪桌面上发生的所有更改
我试过了这个查询
Update Stocks
Set stockOut = 100
,TrackDate = '1/30/2016'
,stockOnHand = stockOnHand - 400
WHERE itemID = '4589-S';
和这一个。两个人在不同的日期。
Update Stocks
Set stockOut = 200
,TrackDate = '2/30/2016'
,stockOnHand = stockOnHand - 400
WHERE itemID = '4589-S';
现在我使用了这个查询
SELECT
[ItemID]
,[ProdID]
,[stockOnHand]
,[stockIn]
,[stockOut]
,[TrackDate]
from Stocks
where TrackDate between '1/30/2016' and '5/30/2016'
跟踪特定范围内的变化 date.But我只获得 1 结果
我期待得到2个结果,因为我已经在两个不同的日期更新了这个表。
答案 0 :(得分:1)
你需要两张桌子,
股票& STOCK_HISTORY
插入/更新股票时,您还应在STOCK_HISTORY表中创建新记录。该表的列应该是ID,STOCK_ID,ACTION(创建,更新,删除)和TIMESTAMP。
这样,您在STOCK表中没有无用信息,并且只要您想列出您所做股票的所有变更:
SELECT * FROM stocks s
JOIN stock_history sh ON sh.stockId = s.id
WHERE s.id = $stockId

答案 1 :(得分:0)
UPDATE查询更改现有行。
INSERT查询添加新行。
您的更新查询都更改了同一行。
答案 2 :(得分:0)
要归档对表格所做的每项更改,请添加 TRIGGER http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
触发器将通过将行写入另一个表来存档整行或部分行,以防该行被删除或更新。您必须在TRIGGER-Definition中定义更改行时确切发生的情况以及应归档行的哪些值。