Oracle vs PostgreSQL,研發注意事項(6)- 事務處理
本節介紹了Oracle和PG在事務處理上面的部分不同點。
Oracle
Oracle資料庫,在同一個事務中的多個語句,如某個語句執行出錯,該語句不影響其他語句的執行,如事務提交,則執行成功語句會持久化到DB中。
測試指令碼:
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('測試x3','測試x3');
insert into tbl3 values('測試x3','測試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資料庫,在同一個事務中的多個語句,如某個SQL語句執行出錯,則就算在其後執行commit,事務也會回滾。如在該出錯語句之後執行其他DML語句,則會報錯。
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('測試3','測試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)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2374873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle vs PostgreSQL,研發注意事項(2)-DDL語句與事務OracleSQL
- Oracle vs PostgreSQL,研發注意事項(3)- 事務回滾之UPDATE操作解析OracleSQL
- Oracle vs PostgreSQL,研發注意事項(5)- 字元型別OracleSQL字元型別
- Oracle vs PostgreSQL,研發注意事項(12) - NULL與索引OracleSQLNull索引
- Oracle vs PostgreSQL,研發注意事項(13) - UPDATE語句OracleSQL
- Oracle vs PostgreSQL,研發注意事項(7)- 型別轉換OracleSQL型別
- Oracle vs PostgreSQL,研發注意事項(1)-查詢鎖表OracleSQL
- Oracle vs PostgreSQL,研發注意事項(8)- Oracle資料比較規則OracleSQL
- Oracle vs PostgreSQL,研發注意事項(10)- PostgreSQL資料型別轉換規則#2OracleSQL資料型別
- Oracle vs PostgreSQL,研發注意事項(11)- PostgreSQL資料型別轉換規則#3OracleSQL資料型別
- Oracle vs PostgreSQL,研發注意事項(9)- PostgreSQL資料型別轉換規則#1OracleSQL資料型別
- Oracle vs PostgreSQL,研發注意事項(4)- PageSize對資料儲存的影響OracleSQL
- TransactionScope事務處理方法介紹及.NETCore中的注意事項NetCore
- Oracle使用*的注意事項Oracle
- Oracle分散式事務典型案例處理Oracle分散式
- Oracle 資料匯出注意事項Oracle
- Oracle臨時表使用注意事項Oracle
- 分散式事務處理方案,微服事務處理方案分散式
- [Android開發] 注意事項Android
- oracle分散式事務異常處理方法Oracle分散式
- Oracle:記憶體設定注意事項Oracle記憶體
- Oracle 巢狀事務 VS 自治事務Oracle巢狀
- mysqli 事務處理MySql
- MySQL事務處理MySql
- springboot事務處理Spring Boot
- PostgreSQL 原始碼解讀(225)- Transaction(子事務處理)SQL原始碼
- netcore後臺任務注意事項NetCore
- RandomAccessFile注意事項randomMac
- @Lombok注意事項Lombok
- vs.net 2003水晶報表部署注意事項
- ORACLE懸疑分散式事務問題處理Oracle分散式
- 【ASM】Oracle asm刪除磁碟組注意事項ASMOracle
- PostgreSQL:事務SQL
- 關於mysqldump備份非事務表的注意事項MySql
- .Net上傳檔案處理三大正規化,及開發注意事項
- spring cloud開發、部署注意事項SpringCloud
- 介面開發文件及注意事項
- uni-app開發注意事項APP