MYISAM怎么保证数据的完整性


因为业务一个逻辑可能要操作几个表,由于用的是MYSQL 的MYISAM 引擎,不支持事务,请问MYISAM怎么能保证数据的完整性?

例如有A、B、C操作,如果A插入成功,B更新成功,C失败,不联表怎么保证A,B的数据是对的?

另外如果换成INNODB引擎的话,涉及到A、B、C操作的代码逻辑是不是都要去加上事务处理代码?

mysql myisam innodb

noir87 9 years, 8 months ago

如果选用MYISAM引擎却又要保证的数据的完整性,那就只能通过编写自己的数据校验代码去检查。网上也有利用临时表/中间表的方法。
ε-(´・`)========
如果换成了innodb的话,请将你对a,b,c中数据的操作放在同一个事务中。


 开始使用事务
...A酱blablabla
...B酱blablabla
...C酱blablabla
事务结束,提交

另:虽然innodb提供了事务回滚的功能,但也请 注意 尽量不要在事务中进行不连续的业务操作,比如调用核心的第三方接口什么的...(´_`。),毕竟你能滚的只有你的数据库而已。

fy answered 9 years, 8 months ago

Your Answer