已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > 其他编程语言 > 讨论/求助

标题: mysql的myisam引擎[求助]

作者: @Ta

时间: 2017-10-04

点击: 2337

在一次请求中,有增加一个表数据,更新另个表数据,什么确保所有的语句都执行成功?担心有时候增加数据成功,但是更新数据又不成功,什么确保所有的执行都成功再执行?

[隐藏样式|查看源码]


『回复列表(1|隐藏机器人聊天)』

1.

@大尨,明确的表示,MyISAM不支持一致性,不支持事务处理,所以无法实现你想要的功能。如果想在所有操作都成功的时候再执行操作,也就是使用数据库的事务处理特性,请使用InnoDB引擎。InnoDB引擎是一个高效可靠拥有企业级性能的非常优秀的数据库引擎。

在支持事务处理的InnoDB引擎里,你只需要在开始操作前创建一个事务,操作全部完成之后提交事务,就可以了。如果操作在你提交之前中断,数据库会自动回滚你的操作。并且数据库会保证,一但你提交事务,事务中包含的所有操作要么全部成功,要么全部失败(比如掉电这种意外情况下可能就是全部失败),不会有中间状态。我想这就是你想要的。

具体开始事务的方法根据你使用的mysql连接函数的不同而不同。
比如mysqli:http://m.blog.csdn.net/jinbiao520/article/details/7969426
pdo:http://www.runoob.com/php/php-pdo-transactions.html

(/@Ta/2017-10-04 15:21//)

回复需要登录

7月7日 06:58 星期一

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1