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 đó

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,

1 Like

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

1 Like

Hehe. Tks kiu vinamilk. Để mh thử

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?