我刚刚做了一次SQL考试,我真的很难处理两个关于交易的问题,它已经提交了,所以这只是为了我的理智......这些答案是什么?
很抱歉,如果这不应该在这里,或者这些应该是两个单独的问题。
1
Employee X has a salary of 40,000
a. User A begins a transaction and updates employee X's salary to salary * 1.1
b. User B begins a transaction and updates employee X's salary to salary * 1.25
c. User A rolls back their transaction
d. User B commits their transaction
员工X的薪水是多少? (我去了50,000,没有提到事务隔离级别)
2。 脚本构建如下 -
a. Transaction start
b. Insert record into table 1
c. Create savepoint
d. Insert record into table 2
e. Rollback to the save point created after the insert into table 1
f. Insert a record into table 3
g. Commit the transaction
哪些表是插入的记录? (我只和表1一起去过)
答案 0 :(得分:6)
对于你的问题1,假设我们有默认的事务隔离级别,即Read Committed。你的答案是对的。
问题1
- 用户1开始交易而不提交
- 用户2尝试更新相同的记录,但他的更新将被阻止,直到用户一回滚 他的交易,但一旦他回滚他的交易,它将更新为
醇>Salary * 1.25
,即50000。
问题2
- 使用保存点在表1中插入的记录表示是否回滚此事务 将不会回滚到最后保存的点。
- 插入表2然后回滚,这会将插件回滚到表2中,但是 而不是表1中受保存点保护的插入。
- 插入表3并提交。这将把表1和3中的插入内容保存到磁盘中。
醇>
答案 1 :(得分:0)
抱歉,我没有得到你的第一个问题。
对于问题2,数据将插入table1和table3。