mysql 投票问题 事务

需要查看用户是否已经投票,如果已经投票,则不插入数据,如果未投票,则插入数据。在并发的条件下,有可能用户在同一时刻都查询到未投票,然后导致插入多条数据。

针对这样的情况,有什么好的解决方案么?
目前所知,用数据库的事务并不会对select进行加锁,所以事务可能并不能解决这类问题?
难道只有select for update这类型的可以么?有什么什么主流一点的方法


繁花不似锦
浏览 542回答 1
1回答

森林海

用户id和投票id做成联合的唯一键即可.CREATE TABLE user_vote_record (     user_id INT,     vote_id INT,    UNIQUE KEY uk_user_vote (user_id , vote_id) );
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL