首页 > 数据库 > mysql教程 > 引用完整性检查可以推迟到 MySQL 中提交吗?

引用完整性检查可以推迟到 MySQL 中提交吗?

Mary-Kate Olsen
发布: 2024-11-09 20:28:02
原创
348 人浏览过

Can Referential Integrity Checks Be Deferred Until Commit in MySQL?

在 MySQL 中引用完整性检查可以推迟到提交吗?

在 MySQL 中,引用完整性检查会立即执行,而不是推迟到事务提交。正如 MySQL 文档中所强调的,此限制会阻止某些操作,例如删除使用外键引用自身的记录。

推迟引用完整性检查的问题之前已经提出过,如参考了 PoEAA 问题。当在单个事务中将数据插入多个相关表时,就会出现问题。由于立即进行引用完整性检查,尝试插入连接表时可能会发生约束错误。

根据 SQL 标准,应推迟约束检查。然而,MySQL 中的默认存储引擎 InnoDB 目前在 SQL 语句中逐行强制执行。这意味着它在引用或父记录上设置共享行级锁,从而阻止事务继续进行。

因此,在以 InnoDB 作为存储引擎的 MySQL 中,目前不可能将引用完整性检查推迟到提交。这种限制给某些数据库操作带来了挑战,需要在设计数据库架构时仔细考虑。

以上是引用完整性检查可以推迟到 MySQL 中提交吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板