postgresql中默認(rèn)是自動(dòng)提交的
查看是否是自動(dòng)提交:
postgres=# \echo :AUTOCOMMIT
on
關(guān)閉自動(dòng)提交:
postgres=# \set AUTOCOMMIT off
postgres=# \echo :AUTOCOMMIT
off
另一種方式就在會(huì)話開(kāi)始的時(shí)候以begin開(kāi)始相當(dāng)于關(guān)閉了自動(dòng)提交,以end或者commit結(jié)束就可以了
補(bǔ)充:pg(hgdb)默認(rèn)事務(wù)自動(dòng)提交
默認(rèn)情況下,AUTOCOMMIT(自動(dòng)提交)是開(kāi)著的,也就是說(shuō)任何一個(gè)SQL語(yǔ)句執(zhí)行完畢后,它鎖做的數(shù)據(jù)修改都會(huì)被立即提交,這種情況下每個(gè)語(yǔ)句都是一個(gè)獨(dú)立的事務(wù),一旦 執(zhí)行完畢祁結(jié)果就不可撤銷(xiāo)。
如果你需要運(yùn)行大量的DML語(yǔ)句并且這些語(yǔ)句還未經(jīng)充分測(cè)試,那么自動(dòng)提交功能會(huì)帶來(lái)麻煩,此時(shí)有必要關(guān)閉事務(wù)自動(dòng)移交機(jī)制來(lái)對(duì)數(shù)據(jù)進(jìn)行保護(hù)。
請(qǐng)先關(guān)閉自動(dòng)提交功能:\set AUTOCOMMIT off,然后就可以按需對(duì)事務(wù)進(jìn)行回滾了:
update census.fats set short_name='this is a mistake.';
要回滾事務(wù),請(qǐng)執(zhí)行:
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Postgresql 默認(rèn)用戶名與密碼的操作
- postgresql 中的加密擴(kuò)展插件pgcrypto用法說(shuō)明
- PostgreSQL表膨脹監(jiān)控案例(精確計(jì)算)
- Postgresql 解決pg掉電后無(wú)法重啟的問(wèn)題
- PostgreSQL 恢復(fù)誤刪數(shù)據(jù)的操作
- PostgreSQL 日志文件的所在位置
- PostgreSQL 實(shí)現(xiàn)登錄及修改密碼操作