提问:SQL中的INSERT INTO ... SELECT ...
提问:SQL中的INSERT INTO ... SELECT ...
现有个表,记录用户账户存款的 users_id | created | amount | post_balance
created是该次交易的时间,
amount指该次交易的数额,
post_balance是该次交易后的用户账户余额。
post_balance是根据之前最后一次的post_balance + 当前这次的amount得到的。
那么我想用
INSERT INTO xxx (users_id, amount, post_balance)
VALUES (10002, 100.00, amount + (SELECT post_balance FROM xxx ORDER BY created DESC limit 1))
因为这条语句用SELECT来选择之前最后一次的post_balance记录,
这样,如果发生并发,就是有2条以上的上述INSERT语句,对同一个用户操作会不会发并发造成的错误?
即:两个SELECT语句查询出来的post_balance结果相同,分别计算再分别INSERT,就会导致其中一条的amount丢失,没有加到post_balance中区呢?如果会有这样的错误,那么应该怎么修改呢?
谢谢各位大侠了!