安娜尔返利机器人怎么做网站,网站模板html,自建网站公司,智能建站模版想在每天某个特定时间段定时执行一条sql语句命令#xff0c;来进行数据库的备份或者更新删除等#xff0c;可以直接使用MySQL自带的定时任务Event事件来执行操作。需要注意的是Event事件是在MySQL 5.1版本中新增的#xff0c;还有一点就是确保你有MySQL数据库的root管理权限…想在每天某个特定时间段定时执行一条sql语句命令来进行数据库的备份或者更新删除等可以直接使用MySQL自带的定时任务Event事件来执行操作。需要注意的是Event事件是在MySQL 5.1版本中新增的还有一点就是确保你有MySQL数据库的root管理权限因为Event默认是关闭状态需要用root权限开启 下面会给出开启方法。查看Event事件是否开启1、查看MySQL是否开启event执行下面的命令。SHOW VARIABLESLIKEevent_scheduler;如果显示OFF说明是关闭状态需要开启。2、 开启event使用下面的命令 。SETGLOBALevent_scheduler 1;执行完后再次查看event状态ON为开启。Event 事件语法说明语法CREATE[DEFINER { user|CURRENT_USER}]EVENT[IF NOTEXISTS]event_nameONSCHEDULE schedule[ONCOMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ONSLAVE][COMMENT string]DO event_body;schedule:ATtimestamp[ INTERVAL interval] ...| EVERY interval[STARTS timestamp[ INTERVAL interval] ...][ENDS timestamp[ INTERVAL interval] ...]interval:quantity {YEAR| QUARTER |MONTH|DAY|HOUR|MINUTE| WEEK |SECOND| YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}语法说明DEFINER指定可执行该定时器的MySQL账号user的格式是’user_name’’host_name’CURRENT_USER或CURRENT_USER()注意单引号是需要在语句中输入的。如果不指定默认是DEFINER CURRENT_USER。event_name事件名称最大64个字符不区分大小写MyEvent和myevent是一样的命名规则和其他MySQL对象是一样的。ON SCHEDULE schedule 指定何时执行下文详细说明。[ON COMPLETION [NOT] PRESERVE]可选preserve是保持的意思这里是说这个定时器第一次执行完成以后是否还需要保持如果是NOT PRESERVE该定时器只执行一次完成后自动删除事件没有NOT该定时器会多次执行可以理解为这个定时器是持久性的。默认是NOT PRESERVE。[ENABLE | DISABLE | DISABLE ON SLAVE]可选是否启用该事件ENABLE-启用DISABLE-禁用可使用alter event语句修改该状态。DISABLE ON SLAVE是指在主备复制的数据库服务器中在备机上也创建该定时器但是不执行。COMMENT: 注释必须用单引号括住。DO event_body事件要执行的SQL语句可以是一个SQL也可以是使用BEGIN和END的复合语句和存储过程相同。ON SCHEDULE 事件的执行时间ON SCHEDULE指定事件何时执行执行的频率和执行的时间段有AT和EVERY两种形式。AT(在指定的时间只执行一次)AT语法AT timestamp用于只执行一次事件。执行的时间由timestamp指定timestamp必须包含完整的日期和时间即年月日时分秒都要有。可以使用DATETIME或TIMESTAMP类型或者可以转换成时间的值例如“2018-01-21 00:00:00”。如果指定是时间是过去的时间该事件不会执行并会生成警告。可以使用CURRENT_TIMESTAMP(当前时间的意思)指定执行时间这样的话事件创建成功会立即执行。如果事件执行的时间是未来的某个时间点可以使用 INTERVAL interval指定具体时间。interval有数字(quantity) 和 时间单位(Unit of time)两部分组成例如2分10秒后执行应写为 INTERVAL ‘2:10’可用的时间单位有很多列表如下图AT小例子1小时后执行该事件。创建名字为myevent的事件ON SCHEDULE指定时间DO要执行的sql语句CREATEEVENT myeventONSCHEDULESCHEDULE ATCURRENT_TIMESTAMP INTERVAL 1HOURDOUPDATEmyschema.mytableSETmycol mycol 1;Every(每间隔多久执行一次)如果需要让事件定时执行使用Every这种方式。注意Every后边没有 INTERVAL时间格式和单位和上面的相同。Every小例子EVERY 20 second每20秒执行一次CREATEEVENT myeventONSCHEDULEEVERY 20 secondDOUPDATEmyschema.mytableSETmycol mycol 1;EVERY后面可以跟可选的STARTS和ENDS指定事件开始和结束时间在这个时间段内时间定时执行。STARTS和ENDS可同时指定或者只指定STARTS或两者都不指定。更多案例EVERY 3 MONTH STARTS CURRENT_TIMESTAMP INTERVAL 1 WEEK 一周以后开始每隔三个月EVERY 2 WEEK STARTS CURRENT_TIMESTAMP INTERVAL ‘6:15’ HOUR_MINUTE 六个小时15分钟以后每隔两周EVERY 12 HOUR STARTS CURRENT_TIMESTAMP INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP INTERVAL 4 WEEK 30分钟以后开始4周后结束每隔12个小时例子每天凌晨执行use 指定名为WordPress的数据库在每天凌晨将wp_vod数据表中的vod_day字段值设为0use WordPress;CREATEEVENT myeventONSCHEDULEEVERY 1 DAYSTARTS 2019-01-01 00:00:00DOupdatewp_vodsetvod_day 0;删除Event事件语句很简单 后面myevent为事件名dropevent myevent;MySQL服务器重启 断电会导致事件关闭整个服务器重启、断电会导致event事件恢复成默认OFF关闭状态想解决这个问题则需要在mysql.ini文件中修改加入event_scheduler ON;