在MySQL上加入insert / update是一个原子操作吗?
在一个Mysql数据库中,每个基于InnoDB的表都启用了自动提交,子查询和/或连接的查询是原子的吗? 例子: > INSERT INTO用户SELECT(x,y,z)FROM users,comments WHERE users.id = comments.user_id; (连接) 数据库中的原子性仅表示全部或全部.它并不意味着数据的正确性.你的陈述成功与否.它与连接或子查询无关.一个语句是一个语句,无论您的数据库是否必须在内存或磁盘上使用临时表. 事务只是告诉您的数据库将多个语句视为一个语句.当其中一个语句失败时,所有语句都会回滚. 这里一个重要的相关主题是isolation level.您可能想要了解这些内容. 编辑(回答评论): 那就对了.只要它是有效的声明并且没有发生电源故障或查询可能失败的其他原因,它就完成了.原子性本身只保证声明是否正在完成.它保证了完整性并且数据没有损坏(导致写入操作没有完成或者某些事情).它不能保证数据的正确性.给出像INSERT INTO foo SELECT MAX(id)1 FROM bar这样的查询;你必须确保通过设置正确的隔离级别,你不会得到幻读或任何东西. (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |