SQL选择和隔离级别
我被要求做一个学校练习来写以下查询:SQL选择和隔离级别,sql,sql-server,select,isolation-level,Sql,Sql Server,Select,Isolation Level,我被要求做一个学校练习来写以下查询: SELECT ACCOUNT_ID, AVG(AMOUNT) FROM ACCOUNTS A INNER JOIN TRANSACTIONS T ON A.ACCOUNT_ID = T.ACCOUNT_ID GROUP BY ACCOUNT_ID 练习的重点是执行整个语句,而不包括正在进行的新事务。我的第一个想法是使用可序列化的最高隔离级别或将事务设置为只读。但是我想知道这是否真的有必要 像这样的单个语句可以被认为是原子的吗?如果是这样,这是否意味着引擎在
SELECT ACCOUNT_ID, AVG(AMOUNT)
FROM ACCOUNTS A
INNER JOIN TRANSACTIONS T ON A.ACCOUNT_ID = T.ACCOUNT_ID
GROUP BY ACCOUNT_ID
练习的重点是执行整个语句,而不包括正在进行的新事务。我的第一个想法是使用可序列化的最高隔离级别或将事务设置为只读。但是我想知道这是否真的有必要
像这样的单个语句可以被认为是原子的吗?如果是这样,这是否意味着引擎在数据上的工作方式与查询启动时相同
如果不是,正确的方法是什么?您使用的是MySQL还是SQL Server?SQL Server,它在MySQL上是如何变化的?google SQL Server事务隔离级别,一旦您阅读并理解它,您将能够选择最好的事务隔离级别。您的老师不希望您为他/她修复此查询,他们希望您了解并理解所有事务隔离级别:我已经了解,这里正确的隔离级别是可序列化的,因为它防止在帐户和事务上添加新行。但我的问题不止于此,而是关于那个查询的原子性。