因为业务一个逻辑可能要操作几个表,由于用的是MYSQL 的MYISAM 引擎,不支持事务,请问MYISAM怎么能保证数据的完整性?
例如有A、B、C操作,如果A插入成功,B更新成功,C失败,不联表怎么保证A,B的数据是对的?
另外如果换成INNODB引擎的话,涉及到A、B、C操作的代码逻辑是不是都要去加上事务处理代码?
因为业务一个逻辑可能要操作几个表,由于用的是MYSQL 的MYISAM 引擎,不支持事务,请问MYISAM怎么能保证数据的完整性?
例如有A、B、C操作,如果A插入成功,B更新成功,C失败,不联表怎么保证A,B的数据是对的?
另外如果换成INNODB引擎的话,涉及到A、B、C操作的代码逻辑是不是都要去加上事务处理代码?
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.3k 阅读
3 回答1.1k 阅读✓ 已解决
3 回答2k 阅读
2 回答2k 阅读
如果选用MYISAM引擎却又要保证的数据的完整性,那就只能通过编写自己的数据校验代码去检查。网上也有利用临时表/中间表的方法。
ε-(´・`)========
如果换成了innodb的话,请将你对a,b,c中数据的操作放在同一个事务中。
另:虽然innodb提供了事务回滚的功能,但也请注意尽量不要在事务中进行不连续的业务操作,比如调用核心的第三方接口什么的...(´_`。),毕竟你能滚的只有你的数据库而已。