PostgreSQL 事务和命令示例的性质和控制
事务是在数据库上执行的工作单元。事务是按逻辑顺序完成的工作单元或工作序列,可以由用户手动完成,也可以由某些数据库程序自动完成。
交易的性质
交易有以下四个标准属性,一般用缩写表示 ACID
缩写:
- 缩写:♾原子性:工作单元操作完成成功;否则,失败点的事务将被中止,并且之前的操作将回滚到之前的状态。
- 一致性:确保数据库在成功提交事务后正确更改状态。
- 隔离:允许事务独立工作并且彼此透明。
- 持久性(Durability):确保已确认交易的结果或影响在系统出现故障时仍然存在。
事务控制
以下命令用于控制事务:
START TRANSACTION
:启动事务。COMMIT
:保存更改,或者您可以使用命令END TRANSACTION
。ROLLBACK
:撤消更改。
事务控制语句仅用于 DML 语句 INSERT
、UPDATE
和 和 DELE 在创建或删除表时不能使用它们,因为这些操作会在数据库。
BEGIN TRANSACTION命令:
您可以使用命令BEGIN TRANSACTION
或简单命令BEGIN
来启动事务。这样的事务通常会持续到遇到下一个命令 COMMIT
或ROLLBACK
。但如果数据库宕机或者发生错误,事务也会ROLLBACK
。
以下是启动/启动事务的简单语法:
BEGIN;
or
BEGIN TRANSACTION;
SQLCOMMIT 语句
现在我们从交易开始,删除表中 如果您再次查看表COMMIT
是一个事务语句,用于保存事务所做的更改。命令
COMMIT
将自上次 COMMIT
或 以来的所有事务提交到数据库
如下如下: ROLLBACK命令命令 ROLLBACK命令未用于恢复存储在数据库中的事务❙ ROLLBACK。
命令的语法 COMMIT COMMIT
或 ROLLBACK
命令只能用于撤消自上次发出 COMMIT‼❝ciu‼‼ 命令以来的事务。命令
和 最后使用命令
ROLLBACK
的语法如下:
SQLROLLBACK;
示例 ❀NY‼❙❙‼ 考虑一个包含以下记录的 表:
SQL id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
age = 25
的记录,最后使用命令ROLLBACK
恢复所有更改。
SQLyiibai_db=# BEGIN;
DELETE FROM COMPANY WHERE AGE = 25;
ROLLBACK;
COMPANY
,您仍然应该看到以下记录:
SQL现在开始另一个事务,表 = 25 id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
COMMIT
提交所有更改。
yiibai_db=# BEGIN;
DELETE FROM COMPANY WHERE AGE = 25;
COMMIT;
SQL如果您查看表COMPANY
,您应该会看到删除后的剩余记录:
id | name | age | address | salary
----+-------+-----+------------+--------
1 | Paul | 32 | California | 20000
3 | Teddy | 23 | Norway | 20000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
(5 rows)
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。