我有查询将现金存入帐户。在此我们提供pin作为验证和存款金额。我使用atm_transaction_details_tb
表进行存款以及撤销(我使用类似的查询类型来撤销。
存款查询 - >
selectQuery = "update atm_transaction_details_tb set amount=amount+?, dot=?,
deposit=? where pin=? ";
撤销查询 - >
selectQuery = "update atm_transaction_details_tb set amount=amount+?, dot=?,
deposit=? where pin=? ";
查询是正确的但是在执行查询后我看到撤销和存入在数据库中的同一行,我希望它在单独的行中。类似于数据库的表格如下所示 -
I am getting this in database-
Amount DOT Withdraw Deposit PIN
6000 12-Sep-2013 500 500 5555
I want this in database -
Amount DOT Withdraw Deposit PIN
5500 12-Sep-2013 500 5555
5000 12-Sep-2013 500 5555
我希望查询将数据存储在不同的行中。可能是需要修改的查询才能进行更改。因为我是新手,请帮帮我。提前谢谢。
答案 0 :(得分:0)
selectQuery = "INSERT INTO atm_transaction_details_tb (amount, dot, deposit, pin)
VALUES(5500,'2013-09-12',500,5555)"
或
INSERT INTO atm_transaction_details_tb (amount, dot, deposit, pin)
SELECT TOP 1
amount + 500
, '2013-09-12'
, 500
, pin FROM atm_transaction_details
WHERE pin=5555
ORDER BY dot DESC
TOP 1和ORDER BY很重要。否则,您将为一个事务插入多行。如果一天有多个交易,您还需要一些标识列来查找最后一笔交易。
此外,我不是您的数据库设计的忠实粉丝。您拥有为每笔交易存储的帐户的“余额”。但您可以更好地进行计算余额的查询,或将余额存储在不同的表格中。
答案 1 :(得分:0)
使用插入查询而不是更新。因为update会根据条件更改相同行/行的值。
答案 2 :(得分:0)
首次使用更新查询,因为您正确使用
UPDATE
atm_transaction_details_tb
SET
amount = amount + 50,
dot = '2013-09-12',
deposit = 50
WHERE pin = 15
在上面的查询之后,运行insert Query,使用上面的pin id复制上面的查询记录,不再更新查询,只插入如下所示。
INSERT INTO `atm_transaction_details_tb` (`pin`, `amount`, `dot`, `deposit`)
(SELECT
`pin`,
`amount`,
`dot`,
`deposit`
FROM
atm_transaction_details_tb
WHERE pin = 15) ;