溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Oracle和PostgreSQL在事務(wù)處理上面有哪些區(qū)別

發(fā)布時(shí)間:2021-11-11 10:59:40 來(lái)源:億速云 閱讀:299 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本篇內(nèi)容主要講解“Oracle和PostgreSQL在事務(wù)處理上面有哪些區(qū)別”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Oracle和PostgreSQL在事務(wù)處理上面有哪些區(qū)別”吧!

Oracle
Oracle數(shù)據(jù)庫(kù),在同一個(gè)事務(wù)中的多個(gè)語(yǔ)句,如某個(gè)語(yǔ)句執(zhí)行出錯(cuò),該語(yǔ)句不影響其他語(yǔ)句的執(zhí)行,如事務(wù)提交,則執(zhí)行成功語(yǔ)句會(huì)持久化到DB中。
測(cè)試腳本:

TEST-orcl@server4>drop table tbl3;

Table dropped.

TEST-orcl@server4>create table tbl3(var varchar(2),fixed char(2));

Table created.

TEST-orcl@server4>
TEST-orcl@server4>insert into tbl3 values('1','1');

1 row created.

TEST-orcl@server4>insert into tbl3 values('2','2');

1 row created.

TEST-orcl@server4>insert into tbl3 values('測(cè)試x3','測(cè)試x3');
insert into tbl3 values('測(cè)試x3','測(cè)試x3')
                        *
ERROR at line 1:
ORA-12899: value too large for column "TEST"."TBL3"."VAR" (actual: 6, maximum:
2)


TEST-orcl@server4>insert into tbl3 values('4','4');

1 row created.

TEST-orcl@server4>
TEST-orcl@server4>commit;

Commit complete.

TEST-orcl@server4>
TEST-orcl@server4>select * from tbl3;

VA FI
-- --
1  1
2  2
4  4

TEST-orcl@server4>

PG
PG數(shù)據(jù)庫(kù),在同一個(gè)事務(wù)中的多個(gè)語(yǔ)句,如某個(gè)SQL語(yǔ)句執(zhí)行出錯(cuò),則就算在其后執(zhí)行commit,事務(wù)也會(huì)回滾。如在該出錯(cuò)語(yǔ)句之后執(zhí)行其他DML語(yǔ)句,則會(huì)報(bào)錯(cuò)。

testdb=# drop table if exists tbl3;
 tbl3;DROP TABLE
testdb=# create table tbl3(var varchar(2),fixed char(2));
CREATE TABLE
testdb=# 
testdb=# begin;
BEGIN
testdb=# 
testdb=# insert into tbl3 values('1','1');
INSERT 0 1
testdb=# insert into tbl3 values('2','2');
INSERT 0 1
testdb=# insert into tbl3 values('測(cè)試3','測(cè)試3');
ERROR:  value too long for type character varying(2)
testdb=# insert into tbl3 values('4','4');
ERROR:  current transaction is aborted, commands ignored until end of transaction block
testdb=# 
testdb=# commit;
ROLLBACK
testdb=# 
testdb=# select * from tbl3;
 var | fixed 
-----+-------
(0 rows)

到此,相信大家對(duì)“Oracle和PostgreSQL在事務(wù)處理上面有哪些區(qū)別”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI