Php 使用laravel迁移创建mysql事件?

Php 使用laravel迁移创建mysql事件?,php,mysql,laravel,Php,Mysql,Laravel,有没有办法使用laravel迁移创建mysql事件?如果是,如何使用?您可以使用DB::statement()。更多细节 不要使用DB::语句(“”),因为事件创建需要处于未准备好的模式。 使用以下命令: DB::unprepared('您的事件创建代码在这里') DB::未准备好(“ 创建事件(如果不存在)删除\u etiqueta\u rendimento\u包 按计划每1天 开始“2020-04-21 01:00:27” 完成时不保留启用 注释“删除3个月前的所有记录重播包” 做 开始 删

有没有办法使用laravel迁移创建mysql事件?如果是,如何使用?

您可以使用
DB::statement()
。更多细节

不要使用DB::语句(“”),因为事件创建需要处于未准备好的模式。 使用以下命令:

DB::unprepared('您的事件创建代码在这里')

DB::未准备好(“ 创建事件(如果不存在)删除\u etiqueta\u rendimento\u包 按计划每1天 开始“2020-04-21 01:00:27” 完成时不保留启用 注释“删除3个月前的所有记录重播包” 做 开始 删除 从rendimento_包装 其中数据时间<日期时间(现在(),间隔3个月); 结束 ");

如果使用DB::语句(“”),可能会看到以下错误: SQLSTATE[HY000]:一般错误:当其他未缓冲查询处于活动状态时,2014无法执行查询。考虑使用pdoCalp::FutAccess()。或者,如果您的代码只在mysql上运行,您可以启用查询
通过设置PDO::MYSQL\u ATTR\u USE\u BUFFERED\u QUERY属性进行缓冲。

您可以尝试
DB::statement('CREATE EVENT…')
您必须使用
DB::unprepared
如前面提到的@JinIzzraeel。否则,当其他未缓冲的查询处于活动状态时,会出现一个错误,如
无法执行查询。如果使用的是配置
PDO::ATTR_EMULATE_PREPARES=>true,我们仍然可以使用
DB::statement
;我总是启用此功能,因为在现代PHP版本中,模拟的准备语句足够安全。
DB::statement('CREATE EVENT my_event ...')