我对SQL很新。目前我正在努力了解交易,我很遗憾。所以我想如果你能给我看几个SQL事务的例子。
我认为我的权利是,交易通常是通过DBM软件实现的,然后根据我在用户界面中的操作将它们组合在一起。
那么,例如,如果我想删除多行,那么事务会是什么样子? 会是这样的:
或者如果不是这样的话?还有SET TRANSACTION在哪里?
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
当您希望整个系列的SQL语句成功时,将使用事务。如果系列的任何部分失败,则数据库将回滚到BEGIN TRANSACTION之前的状态。您将整个SQL语句序列包装在事务中。
通常的例子是银行账户之间的转账。为此,我必须按一笔金额借记一个帐户,并以相同的金额向另一个帐户贷记。两个操作都必须成功,因为如果只有一个成功,那么转移将无法平衡。例如,如果信用证成功但借记失败,则有人获得免费资金。
答案 1 :(得分:0)
您已经为SQL(通用),MySQL和Access标记了您的问题,并且SQL的每个“风格”都可能有自己的特定语法(请查看相关文档,例如,对于MySQL外观here) 。但是,一般的例子是
START TRANSACTION;
UPDATE BankAccount SET Balance=Balance-5 WHERE Owner='James';
UPDATE BankAccount SET Balance=Balance+5 WHERE Owner='Gord';
COMMIT;
如果第二个UPDATE语句失败,则整个事务将“回滚”,并且两个帐户余额保持不变。只有当两个 UPDATES成功时,才会将5美元从您的帐户转移到我的帐户。