在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ PostgreSQL事務(wù)
PostgreSQL LIKE條件
PostgreSQL截?cái)啾恚═RUNCATE TABLE語句)
C/C++連接PostgreSQL數(shù)據(jù)庫
PostgreSQL別名
PostgreSQL日期和時(shí)間函數(shù)
PostgreSQL NOT IN條件
PostgreSQL歷史
PostgreSQL事務(wù)
PostgreSQL AND & OR條件
PostgreSQL NULL值
PostgreSQL教程
PostgreSQL更新數(shù)據(jù)(UPDATE語句)
PostgreSQL ORDER BY子句
PostgreSQL分組(GROUP BY子句)
PostgreSQL數(shù)據(jù)類型
PostgreSQL特點(diǎn)
PostgreSQL刪除數(shù)據(jù)庫
PostgreSQL UNIONS子句
PostgreSQL AND條件
PostgreSQL索引
PostgreSQL刪除表
Perl連接PostgreSQL數(shù)據(jù)庫
PostgreSQL視圖
PostgreSQL修改表(ALTER TABLE語句)
PostgreSQL全外連接
PostgreSQL命令語法大全
PostgreSQL查詢數(shù)據(jù)(SELECT語句)
PostgreSQL自動遞增
PostgreSQL左外連接
PostgreSQL創(chuàng)建表
PostgreSQL模式(架構(gòu))
PostgreSQL觸發(fā)器
PostgreSQL安裝(Windows)
PostgreSQL NOT條件
PostgreSQL Having子句
PostgreSQL函數(shù)(存儲過程)
Java連接PostgreSQL數(shù)據(jù)庫
PostgreSQL權(quán)限
PostgreSQL OR條件
PostgreSQL創(chuàng)建數(shù)據(jù)庫
PostgreSQL BETWEEN條件
PostgreSQL IN條件
Python連接PostgreSQL數(shù)據(jù)庫
PostgreSQL刪除數(shù)據(jù)(DELETE語句)
PostgreSQL子查詢
PostgreSQL右外連接
PostgreSQL插入數(shù)據(jù)(INSERT語句)
PostgreSQL是什么?
PostgreSQL連接(內(nèi)連接)
PHP連接PostgreSQL數(shù)據(jù)庫
PostgreSQL條件查詢
PostgreSQL鎖
PostgreSQL跨連接(CROSS JOIN)

PostgreSQL事務(wù)

事務(wù)是對數(shù)據(jù)庫執(zhí)行的工作單元。事務(wù)是以邏輯順序完成的工作的單位或順序,無論是用戶手動的方式還是通過某種數(shù)據(jù)庫程序自動執(zhí)行。

事務(wù)性質(zhì)

事務(wù)具有以下四個(gè)標(biāo)準(zhǔn)屬性,一般是由首字母縮寫詞ACID簡稱:

  • 原子性(Atomicity):確保工作單位內(nèi)的所有操作成功完成; 否則事務(wù)將在故障點(diǎn)中止,以前的操作回滾到其以前的狀態(tài)。
  • 一致性(Consistency):確保數(shù)據(jù)庫在成功提交的事務(wù)時(shí)正確更改狀態(tài)。
  • 隔離性(Isolation):使事務(wù)能夠獨(dú)立運(yùn)作并相互透明。
  • 持久性(Durability):確保在系統(tǒng)發(fā)生故障的情況下,提交的事務(wù)的結(jié)果或效果仍然存在。

事務(wù)控制

以下命令用于控制事務(wù):

  • BEGIN TRANSACTION:開始事務(wù)。
  • COMMIT:保存更改,或者您可以使用END TRANSACTION命令。
  • ROLLBACK:回滾更改。

事務(wù)控制命令僅用于DML命令INSERTUPDATEDELETE。 創(chuàng)建表或刪除它們時(shí)不能使用它們,因?yàn)檫@些操作會在數(shù)據(jù)庫中自動提交。

BEGIN TRANSACTION命令:

可以使用BEGIN TRANSACTION或簡單的BEGIN命令來開始事務(wù)。 這樣的事務(wù)通常會持續(xù)下去,直到遇到下一個(gè)COMMITROLLBACK命令。 但如果數(shù)據(jù)庫關(guān)閉或發(fā)生錯(cuò)誤,則事務(wù)也將ROLLBACK。

以下是啟動/開始事務(wù)的簡單語法:

BEGIN;

or

BEGIN TRANSACTION;

COMMIT命令

COMMIT命令是用于將事務(wù)調(diào)用的更改保存到數(shù)據(jù)庫的事務(wù)命令。
COMMIT命令自上次的COMMITROLLBACK命令后將所有事務(wù)保存到數(shù)據(jù)庫。
COMMIT命令的語法如下:

COMMIT;

or

END TRANSACTION;

ROLLBACK命令

ROLLBACK命令是用于還原尚未保存到數(shù)據(jù)庫的事務(wù)的事務(wù)命令。自上次發(fā)出COMMITROLLBACK命令以來,ROLLBACK命令只能用于撤銷事務(wù)。
ROLLBACK命令的語法如下:

ROLLBACK;

示例

考慮COMPANY表有以下記錄:

 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000

現(xiàn)在,我們開始一個(gè)事務(wù),并刪除表中age = 25的記錄,最后使用ROLLBACK命令撤消所有的更改。

yiibai_db=# BEGIN;
DELETE FROM COMPANY WHERE AGE = 25;
ROLLBACK;

如果再次查看COMPANY表應(yīng)該仍然看到以下記錄:

id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000

現(xiàn)在,讓我們開始另一個(gè)事務(wù),并從表中刪除age = 25的記錄,最后使用COMMIT命令提交所有的更改。

yiibai_db=# BEGIN;
DELETE FROM COMPANY WHERE AGE = 25;
COMMIT;

如果查看COMPANY表應(yīng)該看到刪除后剩下的記錄:

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  3 | Teddy |  23 | Norway     |  20000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000
(5 rows)