国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-BEGIN

2019-09-08 23:33:04
字體:
來源:轉載
供稿:網友
BEGIN
名稱
BEGIN ― 以鏈的模式開始一個事務
語法
  
BEGIN [ WORK | TRANSACTION ]
輸入
WORK, TRANSACTION 
可選關鍵字。它們沒有作用。 

輸出
BEGIN 
這表明一個新的事務已經開始. 
NOTICE: BEGIN: already a transaction in progress 
這表明該事務已經運行,當前事務沒有被影響. 

描述
缺省時,Postgres 以非鏈接模式(unchained mode)執行一個事務(在其他數據庫系統里也稱之為“自動提交”("autocommit"))。換句話說,每個用戶語句都是在其自身的事務中運行并且在語句結束時隱含的調用一個提交(commit)(如果執行成功則提交,否則調用一個回卷)。 BEGIN 以鏈接模式(chained mode)初始化一個用戶事務,也就是說所有 BEGIN 命令后的用戶語句都將在一個事務里面執行直到一個顯式的 COMMIT,ROLLBACK,或執行退出。在鏈接模式里執行的語句很明顯地快得多,因為事務開始/提交(start/commit)需要大量的CPU和磁盤活動。在一個事務內部執行多條語句時因為可能修改若干個相關的表因而同樣需要一致性。 
在 Postgres 里缺省的事務隔離級別是 READ COMMITTED,這時在事務內部的查詢只看到查詢提交之前的(數據)修改。所以,如果你需要更嚴格的事務隔離,你必須在 BEGIN 后馬上使用 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE。在 SERIALIZABLE 模式里,查詢將只能看到整個事務開始之前的修改。(實際上是在一個可串行化事務內部第一個 DML 語句執行前的數據)。 

如果提交了事務,Postgres 將保證要么實現所有更新,要么所有更新都沒有實現。事務有標準的ACID(不可分割性,一致性,隔離性,持續性)(atomic,consistent,isolatable,and durable)屬性。 

注意
請參考 LOCK 語句獲取關于在事務內部鎖定一個表的詳細信息. 
使用 COMMIT 或 ROLLBACK  結束一個事務.

用法
開始一個用戶事務: 
BEGIN WORK;

兼容性
SQL92
BEGIN 是 Postgres 語言的擴展.在 SQL92 中沒有顯式的 BEGIN 的定義;事務初始化總是隱含的而且使用一個 COMMIT 或 ROLLBACK 語句終止. 
注意:許多關系型數據庫為了方便提供一個自動提交(autocommit)特性。
順便說一句,BEGIN 關鍵字在嵌入 SQL 里用于不同的目的。我們建議你在移植數據庫應用時仔細檢查事務的語意。 
SQL92 還要求事務的缺省隔離級別是 SERIALIZABLE。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 四平市| 中宁县| 启东市| 迁安市| 邵东县| 中牟县| 徐汇区| 和龙市| 通河县| 健康| 绥中县| 高安市| 祁东县| 四会市| 灵璧县| 东港市| 辛集市| 北京市| 奉贤区| 巫山县| 黔西| 会同县| 启东市| 鹰潭市| 楚雄市| 崇信县| 绩溪县| 东丰县| 穆棱市| 桓台县| 泌阳县| 河池市| 临潭县| 桃江县| 阿拉善左旗| 万源市| 溧阳市| 龙岩市| 永登县| 万安县| 宜兴市|