简体   繁体   English

使用 Laravel 迁移创建一个 mysql 事件?

[英]Create a mysql event with laravel migration?

Is there any way to create a mysql event using laravel migration?有没有办法使用laravel迁移创建mysql事件? If yes how?如果是如何?

Don't use DB::statement(''), as the event creation needs to be on unprepared mode.不要使用 DB::statement(''),因为事件创建需要处于未准备模式。 Use the following:使用以下内容:

DB::unprepared('Your event creation code goes here') DB::unprepared('你的事件创建代码在这里')

You can use DB::statement() .您可以使用DB::statement() More details here .更多细节在这里

DB::statement('CREATE EVENT my_event ...')

DB::unprepared(" CREATE EVENT IF NOT EXISTS delete_etiqueta_rendimento_pack ON SCHEDULE EVERY 1 DAY STARTS '2020-04-21 01:00:27' ON COMPLETION NOT PRESERVE ENABLE COMMENT 'Deletes all record redimento_pack from 3 months ago' DO BEGIN DELETE FROM rendimento_packing WHERE data_hora < DATE_SUB(NOW(), INTERVAL 3 MONTH); END "); DB::unprepared(" CREATE EVENT IF NOT EXISTS delete_etiqueta_rendimento_pack ON SCHEDULE EVERY 1 DAY STARTS '2020-04-21 01:00:27' ON COMPLETION NOT PRESERVE ENABLE COMMENT 'Deletes all record redimento_pack from DELEDO 3个月前rendimento_packing WHERE data_hora < DATE_SUB(NOW(), INTERVAL 3 MONTH); END ");

If you use DB::statement('') probabli you gonne a see this error: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active.如果你使用 DB::statement('') probabli 你会看到这个错误: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active。 Consider using PDOStatement::fetchAll().考虑使用 PDOStatement::fetchAll()。 Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.或者,如果您的代码只针对 mysql 运行,您可以通过设置 PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性来启用查询缓冲。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM