如何解决Laravel中的Schema :: disableForeignKeyConstraints如何用于MySQL?
在执行需要禁用外键约束的操作时,可以暂时禁用外键约束以执行此类操作,例如:
Schema::disableForeignKeyConstraints();
// Do good stuff
Schema::enableForeignKeyConstraints();
这让我想想是否在架构中为所有连接禁用了约束?
另一个过程中的另一个连接是否有可能打破禁用和启用之间的限制?
我试图通过在Tinker中运行Schema::disableForeignKeyConstraints();
并打开一个新的终端来尝试打破一些外键约束来对此进行测试-但它们仍然适用,我不确定为什么。
模式构建器使用
public function disableForeignKeyConstraints()
{
return $this->connection->statement(
$this->grammar->compiledisableForeignKeyConstraints()
);
}
对于MysqL,compiledisableForeignKeyConstraints
函数定义为
public function compiledisableForeignKeyConstraints()
{
return 'SET FOREIGN_KEY_CHECKS=0;';
}
因此,似乎运行Schema::disableForeignKeyConstraints();
应该只是禁用整个模式的外键约束-但它似乎仅在每个连接的基础上起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。