Mysql 需要[SQL事务示例]

Mysql 需要[SQL事务示例],mysql,sql,ms-access,transactions,Mysql,Sql,Ms Access,Transactions,我对SQL相当陌生。目前,我正在努力理解交易,我已经迷路了。因此,我希望您能给我展示几个SQL事务的示例 我认为我有权利的是,事务通常是用DBM软件实现的,而DBM软件基本上是根据我在用户界面中所做的工作将它们构建在一起的 例如,如果我想删除多行,事务会是什么样子? 是这样的吗? 保存点sp1 从客户中删除 其中fname=“James”和lname=“Belik 承诺 保存点sp2 从客户中删除 其中fname=“James”和lname=“Belik 承诺 或者如果不是,它会是怎样的?以及S

我对SQL相当陌生。目前,我正在努力理解交易,我已经迷路了。因此,我希望您能给我展示几个SQL事务的示例

我认为我有权利的是,事务通常是用DBM软件实现的,而DBM软件基本上是根据我在用户界面中所做的工作将它们构建在一起的

例如,如果我想删除多行,事务会是什么样子? 是这样的吗?

  • 保存点sp1
  • 从客户中删除 其中fname=“James”和lname=“Belik
  • 承诺
  • 保存点sp2
  • 从客户中删除 其中fname=“James”和lname=“Belik
  • 承诺
  • 或者如果不是,它会是怎样的?以及SET事务会去哪里


    非常感谢您的帮助。

    当您希望整个SQL语句系列成功时,将使用事务。如果该系列的任何部分失败,数据库将回滚到开始事务之前的状态。您可以在事务中包装整个SQL语句序列


    通常的例子是银行账户之间的转账。要做到这一点,我必须借记一个账户的金额,贷记另一个账户的金额相同。这两个操作都必须成功,因为如果只有一个成功,那么转账将不平衡。例如,如果贷记成功,但借记失败,则有人获得了免费资金。

    您已经为您的问题添加了SQL(通用)、MySQL和Access标记,SQL的每个“味道”可能都有自己的特定语法(请查看相关文档,例如MySQL外观)

    START TRANSACTION;
    UPDATE BankAccount SET Balance=Balance-5 WHERE Owner='James';
    UPDATE BankAccount SET Balance=Balance+5 WHERE Owner='Gord';
    COMMIT;
    

    如果第二个UPDATE语句失败,则整个事务将“回滚”两个账户余额保持不变。只有两次更新都成功,5美元才会从您的账户转移到我的账户。

    我理解这个理论。我只想看看交易控制命令在查询周围的布局:/无论如何,谢谢。谢谢,这太完美了。