你好,我有一个问题:
我正在 MySQL 上制作一个简单的存款和取款表。
我想知道一种方法来进行强大的提款/存款条目插入,以防止重复输入(例如,当用户执行双重提款 API 请求时)。有人知道有什么好方法吗?
我正在考虑使用表锁,但是这只能用MYISAM来完成,并且性能可能会很低? 另一种方法是使用唯一 key ,那么提现入口的唯一 key 可以是什么呢?
简单场景示例:
您在比特币交易网站上拥有 1 BTC。当您将 1 BTC 提取到钱包中时,代码将在提款表中创建 1 BTC 的提款条目。
如何确保代码不会为该 1 BTC 创建双重提款条目?
最佳答案
BEGIN;
UPDATE ... amt = amt - $amt WHERE ...;
UPDATE ... amt = amt + $amt WHERE ...;
INSERT INTO transactions ...;
COMMIT;
这就是 InnoDB 防止经典问题的方法。您指的是另一种情况吗?
关于mysql - 防止MySQL中的重复输入(例如,当快速调用多次插入请求时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49084648/