01/10/2018, 11:48
Xử lý double spend trong mysql
Làm thế nào để xử lý số dư trong mysql
Ví dụ A chuyển cho B xxx money
Làm sao để chắc chắn đã trừ A và đã + cho B vậy mọi người
Ví dụ thực hiện lệnh trừ A trước nhưng lệnh + B không thành công do 1 lỗi nào đó
Bài liên quan
Sáng rồi dậy trả lời giúp em với các bác
Số dư có thể dùng phía chương trình để lấy float, rồi cast sang int, hoặc dùng hàm trong sql statement: http://vietjack.com/mysql/ham_so_hoc_trong_mysql.jsp
Trong sql nó có auto lock, unlock sẵn rồi, nếu dùng lib từ chính mysql thì các hàm thực hiện transaction đó sẽ trả về bool hoặc exception, check cái đó là được,
Lỗi ở đây ý mình là không được thực hiện tức là nó dừng code giữa chừng
( Nghẽn mạng hay vì 1 lý do không rõ )
Tức là sau khi ta trừ và check trừ thành công rồi
Thực hiện lệnh cộng cho tài khoản kia thì vì 1 lý do gì đó code dừng giữa chừng
Ví dụ có 2 lệnh
Dec(A,1000)
==> Code die ở đây vì mạng die hoặc 1 lý do gì đó
Inc(B, 1000)
Dùng transaction trong mysql bạn
Hehe. Tks kiu vinamilk. Để mh thử