我想用宿主语言(例如,VB 2013),在什么情况下数据库事务可以确保并发性的正确性。
例如,在宿主语言中,如果我开始一个事务,然后在事务中我执行查询以获取数据库中的数字到以宿主语言声明的变量,然后再执行另一个查询得到数据库中的一个数字到另一个在宿主语言中声明的变量,然后我添加这两个数字,然后我将总和放到数据库中一行表的一行中,然后我提交事务那么,在并发情况下,这个程序是否正确地添加了两个数字然后将总和加到数据库中?
答案 0 :(得分:0)
默认情况下,您的示例可能无法按预期工作。您选择的数据库应该有一些可以帮助解决此问题的同步原语。仅交易可能不足以使用。有必要告诉数据库读取变量应该同步和写入。
MySQL允许将读取锁定为事务的一部分
http://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html