mysql命令行什么时候需要手动开启事务?

MySQL的事务如果不在任何修改,默认是自动提交的,也就是你只要执行一个SQL,回车之后这个SQL语句如果没有任何问题,只需完成后是自动提交的。控制这个功能的参数是:autocommit。如果这个参数的值是on或者1,那么就是上面我说的那种现象。如果是off或者0,则表示不会自动提交事务。需要你显示的去提交事务...
mysql命令行什么时候需要手动开启事务?
MySQL的事务如果不在任何修改,默认是自动提交的,也就是你只要执行一个SQL,回车之后这个SQL语句如果没有任何问题,只需完成后是自动提交的。
控制这个功能的参数是:autocommit。如果这个参数的值是on或者1,那么就是上面我说的那种现象。如果是off或者0,则表示不会自动提交事务。需要你显示的去提交事务。否则锁执行的SQL不会不会永久生效,只会对你当前命令行的session有效,退出MySQL后,执行的SQL语句将会别回滚。
当你需要两个SQL语句同时成功或者同时失败的时候,你可以手动地开启一个事务。比如下面的场景:
你想向订单表order_info表中插入一条新的订单记录,同时要想支付信息表payment_info中插入一条支付信息记录,这个时候从业务的角度上来看,这两个表中的插入操作,需要保持原子性(也就是事务的四大特性之一),也就是要么都插入成功,要么都插入失败,不能存在订单插入成功,支付插入失败,反之也不可以。
要满足上面的需求,你就需要手动的去开启一个事务,在这个事务中去插入两个表中的数据。然后再提交这个事务。如果这两个表的插入操作,你不手动的开启事务,MySQL自己会把两个SQL语句分开放在两个单独的事务中。执行一个插入,就会自动提交一个事务,然后在执行另外一个插入,再自动提交另外一个事务。
在MySQL看来,这是两个分别向两个表中插入的SQL语句而已,它不会从业务上考虑这两个SQL实际的业务逻辑背景是什么。所以此时他会看成是两个SQL语句,也就是两个事务。
这样的情况下就需要手动的开启事务。2020-10-27
mengvlog 阅读 7 次 更新于 2025-07-20 00:19:01 我来答关注问题0
  • MySQL的事务如果不在任何修改,默认是自动提交的,也就是你只要执行一个SQL,回车之后这个SQL语句如果没有任何问题,只需完成后是自动提交的。控制这个功能的参数是:autocommit。如果这个参数的值是on或者1,那么就是上面我说的那种现象。如果是off或者0,则表示不会自动提交事务。需要你显示的去提交事务。

  •  阿暄生活 Win7系统下如何使用命令行启动mysql数据库服务

    一、以管理员身份运行命令提示符 打开命令提示符:在Win7系统的开始菜单搜索框中输入cmd。搜索结果会显示“cmd.exe”或“命令提示符”。以管理员身份运行:右键单击“cmd.exe”或“命令提示符”。在弹出的菜单中选择“以管理员身份运行”。这一步非常重要,因为启动MySQL服务需要管理员权限。二、使用命令...

  •  翡希信息咨询 如何用命令行进入mysql

    方法一:打开命令提示符:点击键盘上的“Win + R”组合键,打开运行对话框。在运行输入框里面输入“cmd”,然后按回车键,即可打开命令提示符。进入MySQL:在命令提示符中输入“mysql”,然后按回车键。如果MySQL已经正确安装并且配置了环境变量,此时应该会进入MySQL的命令行界面。方法二:配置MySQL的环境...

  • 打开系统的环境变量设置界面,找到path这一环境变量项,然后点击编辑按钮。在弹出的窗口中,点击新建按钮,输入MySQL的bin路径。如果MySQL的安装目录是C:\Program Files\MySQL\MySQL Server 8.0\bin,那么应该添加这个路径。点击确定保存更改。完成上述步骤后,重新打开CMD命令行窗口。输入命令“mysql -u 用...

  • 在Win7系统下,使用命令行启动MySQL数据库服务的具体步骤如下:以管理员身份运行cmd:在开始菜单的搜索框中输入cmd。找到cmd.exe后,右键单击它,并选择以管理员身份运行。这一步非常重要,因为启动MySQL服务通常需要管理员权限。使用net start命令启动MySQL服务:在以管理员身份运行的cmd命令框中,输入net ...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部