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