比如考虑用户的注册的情况,先根据用户名判断数据库里有没有同用户名称的,如果没有的话创建用户。
请问各位,这种情形需不需要加数据库事务?并限定事务的级别。我考察了几个开源的代码发现都没有加数据库事务。下面是 reddit 的代码:
def register(name, password, registration_ip):
try:
a = Account._by_name(name)
raise AccountExists
except NotFound:
a = Account(name = name, password = bcrypt_password(password))
# new accounts keep the profanity filter settings until opting out
a.pref_no_profanity = True
a.registration_ip = registration_ip
a._commit()
return a
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.