PostgreSQL.md
... ...
@@ -545,7 +545,7 @@ PostgreSQL 会在某些情况下自动进行数据类型转换,以确保操作
545 545
546 546
### 2.5 PostgreSQL 错误:`current transaction is aborted, commands ignored until end of transaction block`
547 547
548
-1. **错误概述**
548
+**1. 错误概述**
549 549
550 550
当 PostgreSQL 事务中的某条 SQL 语句执行失败时,整个事务会进入 **中止状态**(Aborted)。所有后续的 SQL 命令都会被忽略,直到事务被回滚或关闭。此时任何后续操作都会触发以下错误:`current transaction is aborted, commands ignored until end of transaction block`。
551 551
**核心问题**:事务未正确终止(未提交或回滚),导致数据库连接处于不可用状态。
... ...
@@ -557,7 +557,8 @@ caused by: org.postgresql.util.PSQLException: 错误: 当前事务被终止, 事
557 557
current transaction is aborted, commands ignored until end of transaction block
558 558
```
559 559
560
-2. **事务块中语句错误的回滚行为:数据库对比**
560
+
561
+**2. 事务块中语句错误的回滚行为:数据库对比**
561 562
562 563
**摘要**:在本文中,我们将学习事务块中语句错误的回滚行为,以及 PostgreSQL 和 Oracle 之间的区别。
563 564
... ...
@@ -653,7 +654,7 @@ SELECT * FROM DEMO;
653 654
2 02-AUG-21 11.04.16.601105 PM +00:00
654 655
```
655 656
656
-3. **错误原因**
657
+**3. 错误原因**
657 658
658 659
**3.1 直接原因**
659 660
... ...
@@ -669,7 +670,7 @@ SELECT * FROM DEMO;
669 670
| 权限不足 | 普通用户尝试执行 `DROP TABLE` |
670 671
| 隐式事务未处理 | ORM 框架或客户端工具默认开启事务,但未捕获异常并回滚 |
671 672
672
-4. **解决方法**
673
+**4. 解决方法**
673 674
674 675
**1. 立即终止事务**
675 676
... ...
@@ -713,7 +714,7 @@ ROLLBACK; -- 终止当前事务,清除错误状态
713 714
GRANT INSERT, UPDATE ON table_name TO user_name;
714 715
```
715 716
716
-5. **高级场景与优化**
717
+**5. 高级场景与优化**
717 718
718 719
**1. 使用保存点(SAVEPOINT)**
719 720
... ...
@@ -729,7 +730,7 @@ INSERT INTO table3 VALUES (1);
729 730
COMMIT;
730 731
```
731 732
732
-6. **预防措施**
733
+**6. 预防措施**
733 734
734 735
| 措施 | 说明 |
735 736
| ------------------ | ----------------------------------------------------------- |