需要查看用戶是否已經投票,如果已經投票,則不插入數據,如果未投票,則插入數據。在并發的條件下,有可能用戶在同一時刻都查詢到未投票,然后導致插入多條數據。針對這樣的情況,有什么好的解決方案么?目前所知,用數據庫的事務并不會對select進行加鎖,所以事務可能并不能解決這類問題?難道只有select for update這類型的可以么?有什么什么主流一點的方法
1 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
用戶id和投票id做成聯合的唯一鍵即可.
CREATE TABLE user_vote_record ( user_id INT, vote_id INT, UNIQUE KEY uk_user_vote (user_id , vote_id) );
添加回答
舉報
0/150
提交
取消