SQL | TRANSACTIONS
什么是交易?
事务将一组任务组合成一个执行单元。每个事务从一个特定的任务开始,当组中的所有任务成功完成时结束。如果任何任务失败,事务就会失败。因此,一笔交易只有两个结果:成功或失败。
不完整的步骤会导致交易失败。根据定义,数据库事务必须是原子的、一致的、隔离的和持久的。这些通常被称为 酸性属性。
如何用 SQL 实现事务?
以下命令用于控制事务。需要注意的是,这些语句不能在创建表时使用,只能与–INSERT、UPDATE 和 DELETE 等 DML 命令一起使用。
1。BEGIN TRANSACTION: 它表示显式或本地事务的起始点。
语法:
BEGIN TRANSACTION transaction_name ;
2。设置事务:为事务命名。
语法:
SET TRANSACTION [ READ WRITE | READ ONLY ];
3。提交:如果单个事务中的所有语句都是有序的,所有的更改都会一起记录在数据库中,这称为提交。COMMIT 命令将自上次 COMMIT 或 ROLLBACK 命令以来的所有事务保存到数据库中。
语法:
COMMIT;
例:样表 1
下面是一个示例,它将从表中删除那些年龄= 20 的记录,然后提交数据库中的更改。 查询:
DELETE FROM Student WHERE AGE = 20;
COMMIT;
输出: 因此,表中的两行将被删除,SELECT 语句看起来像,
4。回滚:如果任何 SQL 分组语句出现任何错误,则需要中止所有更改。逆转变化的过程称为回退。此命令只能用于撤消自上次发出 COMMIT 或 ROLLBACK 命令以来的事务。 语法:
ROLLBACK;
示例: 从上面的示例中示例表 1 、 删除表中那些年龄= 20 的记录,然后回滚数据库中的更改。 查询:
DELETE FROM Student WHERE AGE = 20;
ROLLBACK;
输出:
5。保存点:在要回滚的事务组中创建点。 保存点是事务中的一个点,您可以将事务回滚到某个点,而无需回滚整个事务。
保存点命令语法:
SAVEPOINT SAVEPOINT_NAME;
该命令仅用于在所有事务中创建保存点。 一般来说,ROLLBACK 用于撤销一组事务。 回滚到保存点命令的语法:
ROLLBACK TO SAVEPOINT_NAME;
您可以随时回滚到任何保存点,以将适当的数据返回到其原始状态。 示例: 从上面的示例中示例表 1 、 删除表中那些年龄= 20 的记录,然后通过保留保存点来回滚数据库中的更改。 查询:
SAVEPOINT SP1;
//Savepoint created.
DELETE FROM Student WHERE AGE = 20;
//deleted
SAVEPOINT SP2;
//Savepoint created.
这里,SP1 是删除前创建的第一个保存点。在这个例子中,删除了一个。 再次删除后,将创建保存点 SP2。 输出:
删除已经发生,让我们假设您已经改变了主意,并决定回滚到删除之前您标识为 SP1 的保存点。 删除被该语句撤销,
ROLLBACK TO SP1;
//Rollback completed.
6。释放保存点:- 此命令用于删除您创建的保存点。 语法:
RELEASE SAVEPOINT SAVEPOINT_NAME
一旦保存点被释放,您就不能再使用回滚命令来撤消自上次保存点以来执行的事务。
它用于启动数据库事务,并用于指定后续事务的特征。
版权属于:月萌API www.moonapi.com,转载请注明出处