Python使用psycopg2存取PostgreSQL資料庫時的交易管理。
2025/6/11
2021/1/12
Spring Boot Data JPA PlatformTransactionManager 手動管理交易
Spring Boot Data JPA使用PlatformTransactionManager在程式中手動管理交易。
2021/1/6
Spring Boot @Transactional Propagation.REQUIRES_NEW with one connection
本篇試驗在Spring Boot的資料庫連線池(connection pool)設定僅一條連線,搭配@Transactional(propagation = Propagation.REQUIRES_NEW)的效果。
2020/12/10
資料庫 SQL交易隔離 不重覆讀 SQL transaction isolation non-repeatable read
在ANSI SQL-92的4.28 SQL-transactions中提到的併發交易(concurrent transaction)隔離的不重覆讀(non-repeatable read)現象。
2020/12/9
資料庫 SQL交易隔離 髒讀 SQL transaction isolation dirty read
在ANSI SQL-92的4.28 SQL-transactions中提到的併發交易(concurrent transaction)隔離的髒讀(dirty read)現象。
2020/12/7
2020/12/6
MySQL 8 InnoDB SELECT FOR SHARE 與 SELECT FOR UPDATE 差異
MySQL 8 InnoDB 鎖定讀(Locking Reads)分為SELECT ... FOR SHARE與SELECT ... FOR UPDATE,兩者差異如下。
ANSI SQL-92 SQL-transaction isolation level
資料庫交易的ACID特性中的隔離性(Isolation)定義當一筆資料同時被多個交易存取時產生的影響程度。ANSI SQL-92文件中定義了四種隔離層級(isolation level):
2020/11/25
Spring Data JPA 未呼叫Repository.save()但資料卻更新
最近碰到Spring Data JPA的地雷,明明沒有呼叫CrudRepository.save()但資料卻更新。
2020/11/14
Spring Boot @Trancsational 捕捉例外不會觸發回滾 try-catch exception won't trigger rollback
之前撰寫@Transactional 方法間呼叫的回滾範圍時,弄錯了try catch捕捉例外時@Trancsational的rollback效果。
2020/11/4
Spring @Transactional 方法間呼叫的回滾範圍 methods call rollback boundaries
Spring @Transactional交易管理(事務管理)的幾種設定回滾範圍。
2020/10/22
2020/10/21
Spring 呼叫同類別的@Transactional方法不會回滾 call same class @Transactional method no rollback
Spring的交易管理(中國叫做事務管理)(Transactoinal Management)中,當由同類別中一個無交易管理(無@Transactional)的方法呼叫另一個有交易管理(有@Transactional)的方法時,有交易管理的方法發生例外時資料不會回滾(rollback)。
2020/8/29
2020/8/27
Spring Boot TransactionTemplate programmatically rollback
本篇介紹Spring TransactionTemplate如何在程式中手動回滾交易。
2020/8/21
資料庫 交易的悲觀鎖與樂觀鎖 Transaction pessimistic and optimistic locking
資料庫交易特性ACID中的交易隔離(Isolation)通常利用「鎖(locking)」來實現,目的為避免同一筆資料在併行交易(concurrent transaction)中被不同的交易同時修改以確保資料的完整性。
交易鎖又分為「悲觀鎖(pessimistic locking)」與「樂觀鎖(optimistic locking)」。