这里我想填入字段计数,然后在一次原子操作中选择计数结果。
代码是:
sql = ("update user_cout set count = count+1 "
"where username=%s")
cursor = connection.cursor()
cursor.execute(sql, (username, ))
cursor.execute("select count from user_count "
"where username=%s", (username, ))
有任何推荐方式吗?
答案 0 :(得分:0)
您需要在事务中执行UPDATE
和SELECT
(即自动提交的语句):
connection.autocommit(0);
然后可以执行现有语句,显式将它们提交到数据库:
connection.commit();
请注意,要实现原子性,user_count
表必须使用事务存储引擎(例如InnoDB)。
答案 1 :(得分:0)
@linbo,您可以在数据库中创建一个函数/过程(check how to do so here),然后在代码中只运行一次调用:
sql = ("SELECT MY_CUSTOM_FUNC(%s)")
cursor = connection.cursor()
cursor.execute(sql, (username, ))
使用这种方法有很多好处:
我希望它有所帮助!