在SQL語句中復(fù)合語句BEGIN END,還有一種類型,就是原子語句,形式如:
BEGIN ATOMIC
END
原子語句就是完全執(zhí)行、或者根本不執(zhí)行的語句。
舉例來說:
BEGIN ATOMIC
UPDATE Employees
SET ManagerID = 501
WHERE EmployeeID = 467;
UPDATE Employees
SET ManagerID = 502
WHERE EmployeeID = 409;
END;
上面的例子中,原子語句中執(zhí)行兩個(gè)UPDATE操作,
1)第一個(gè)更新執(zhí)行OK,如果第二個(gè)更新操作報(bào)錯(cuò),那么兩個(gè)UPDATE都不執(zhí)行。
2)只有在兩個(gè)UPDATE都能順利執(zhí)行,那么,這個(gè)原子子句就是完全執(zhí)行。
需要注意的是,在原子子句中不允許出現(xiàn)commit子句。
還需要強(qiáng)調(diào)的是一點(diǎn),原子子句也是包含在事務(wù)中的,所以必須在事務(wù)提交之后,原子子句的執(zhí)行結(jié)果才能生效,如果事務(wù)執(zhí)行過程中出錯(cuò)了,那么原子子句也是要做回滾的,而根本不執(zhí)行。
作者“yangyoupeng-cn-fujitsu-com”
,