使用MySQLi禁用PHP脚本的触发器

使用MySQLi禁用PHP脚本的触发器,php,mysql,triggers,Php,Mysql,Triggers,我正在MySQL中使用一个中等大小的数据库,并且正在更新模型。 该数据库具有各种严格相关的表,并使用外键和触发器更新相关数据。 现在,我正在编写一个PHP脚本,将数据从旧的数据库模型传递到新的数据库模型,我对触发器有一点问题。 在DB的整个生命周期中,触发器都将保持并正常工作,但在此之前,我需要在触发器关闭的情况下加载数据。 对我来说,最干净的解决方案是在加载数据之前禁用所有触发器,并在过程结束时将其重新打开。。。我怎么能做到 目前无法禁用触发器(请参阅) 您可以修改触发器以检查会话变量(例如@

我正在MySQL中使用一个中等大小的数据库,并且正在更新模型。 该数据库具有各种严格相关的表,并使用外键和触发器更新相关数据。 现在,我正在编写一个PHP脚本,将数据从旧的数据库模型传递到新的数据库模型,我对触发器有一点问题。 在DB的整个生命周期中,触发器都将保持并正常工作,但在此之前,我需要在触发器关闭的情况下加载数据。
对我来说,最干净的解决方案是在加载数据之前禁用所有触发器,并在过程结束时将其重新打开。。。我怎么能做到

目前无法禁用触发器(请参阅)


您可以修改触发器以检查会话变量(例如@triggers\u disabled),如果设置了,则不执行任何操作。

好吧,但我不想询问每个查询是否禁用了触发器,而我只需要在数据迁移期间的第一个会话中执行此操作。如果我在迁移数据之前删除所有表并重新创建它,然后在数据迁移之后移动触发器创建,可能会更好?那就不同了。您应该首先创建没有触发器的表,然后在迁移后添加它们。是的,就是这样。在迁移之前,数据库是干净的,所以最好的解决方案是在迁移之前创建表,并在迁移之后添加触发器。