ΠΠΎ MySQL 5.1.11 event_scheduler ΠΌΠΎΠ³ Π±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· 2 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: 0|OFF (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ 1|ON Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°.
MySQL 5.1.6 ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΈΡΡ EVENTS Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ INFORMATION_SCHEMA. ΠΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
8.2. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ
MySQL 5.1.6 ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ SQL Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ:
ΠΠΎΠ²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ CREATE EVENT.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ALTER EVENT.
ΠΠΎΠ³Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΎ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ DROP EVENT. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ½ΡΠ° ΠΏΠ»Π°Π½Π°, ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ON COMPLETION, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΎ Π»ΡΠ±ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ EVENT Π΄Π»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. ΠΠΎ MySQL 5.12 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Π» ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΡΡΠ΅Π±ΠΎΠ²Π°Π» ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ΅ mysql.event.
8.2.1. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ CREATE EVENT
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
schedule:
AT timestamp [+ INTERVAL interval]
| EVERY interval [STARTS timestamp]
[ENDS timestamp]
interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR |
MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR |
DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND |
MINUTE_SECOND}
ΠΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ CREATE EVENT ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° CREATE EVENT ΠΏΠ»ΡΡ ΠΈΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠ΅.
ΠΠΎ MySQL 5.1.12 ΠΈΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΡΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ON SCHEDULE, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DO, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ SQL, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ΠΌ.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈCREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO UPDATE myschema.mytable SET mycol = mycol + 1;
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ myevent. ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ»Π±ΡΠ° mycol ΡΠ°Π±Π»ΠΈΡΡ myschema.mytable Π½Π° 1.
ΠΠΌΡ event_name Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ MySQL Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 64 ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΈΠΌΠΏΡΠ»ΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡ Π΅ΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ MySQL (definer) ΠΈ ΡΡ Π΅ΠΌΠΎΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΠΈΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π΄ΠΈ ΠΈΠΌΠ΅Π½ ΡΠΎΠ±ΡΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΡ. ΠΠΎΠΎΠ±ΡΠ΅, ΠΏΡΠ°Π²ΠΈΠ»Π°, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΠΎ ΡΡΡΠΈ ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΎΠ±ΡΠΌΠΈ.
ΠΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ event_name, ΡΠΎ ΠΏΡΠΈΠ½ΡΡΠ° Π·Π°Π΄Π°Π½Π½Π°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΠ°. Definer Π²ΡΠ΅Π³Π΄Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ MySQL.
ΠΠΎ MySQL 5.1.12 Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠΌΡ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: MySQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΡΠΈ ΠΏΡΠ²Π΅ΡΠΊΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π½ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΠΎΠ±ΡΡΠΈΡ events named myevent ΠΈ MyEvent Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π€ΡΠ½ΠΊΡΠΈΡ IF NOT EXISTS Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ CREATE EVENT ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ Ρ CREATE TABLE: Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ event_name ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΡ Π΅ΠΌΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ON SCHEDULE ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π°, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ sql_statement ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ· Π΄Π²ΡΡ ΡΠΎΡΠΌ:
AT timestamp ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ, Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ timestamp, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ, Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΉ ΡΠΈΠΏ datetime. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ DATETIME ΠΈΠ»ΠΈ TIMESTAMP Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠΉ timestamp Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ. ΠΠΎΠΏΡΡΠΊΠ° ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅:
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2006-02-10 23:59:01 |
+---------------------+
1 row in set (0.04 sec)
mysql> CREATE EVENT e_totals
β > ON SCHEDULE AT '2006-02-10 23:59:00'
β > DO INSERT INTO test.totals VALUES (NOW());
ERROR 1522 (HY000): Activation (AT) time is in the past
ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ CREATE EVENT, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌΠΈ ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CURRENT_TIMESTAMP, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΎ.
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΌΠ΅ΡΠΊΠ΅ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ + INTERVAL interval. Π§Π°ΡΡΡ interval ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΡΡΠΊΠΎΠ²: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ DATE_ADD(). ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK + INTERVAL 2 DAY ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ "ΡΡΠΈ Π½Π΅Π΄Π΅Π»ΠΈ ΠΈ Π΄Π²Π° Π΄Π½Ρ Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ". ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ°ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ + INTERVAL.
ΠΠ»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½Ρ Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π΅, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EVERY. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ EVERY ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅. (+ INTERVAL Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ EVERY). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, EVERY 6 WEEK ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π΅Π΄Π΅Π»Ρ".
ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ + INTERVAL Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ EVERY. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½Π½ΡΠ΅ Π² + INTERVAL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΆΠ΄ΡΠ΅ Π΄Π²Π΅ ΠΌΠΈΠ½ΡΡΡ ΠΈ Π΄Π΅ΡΡΡΡ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊ EVERY '2:10' MINUTE_SECOND.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EVERY ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ STARTS. ΠΠ½ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ timestamp, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ + INTERVAL interval, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°, Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΏΡΡΡΡ ΠΎΠ΄Π½Ρ Π½Π΅Π΄Π΅Π»Ρ Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ". Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°ΠΆΠ°ΡΡ "ΠΊΠ°ΠΆΠ΄ΡΠ΅ Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΡ ΡΠ°ΡΠΎΠ² ΠΈ ΠΏΡΡΠ½Π°Π΄ΡΠ°ΡΡ ΠΌΠΈΠ½ΡΡ Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ" Ρ ΠΏΠΎΠΌΠΎΡΡΡ EVERY 2 WEEK STARTS CURRENT_TIMESTAMP + '6:15' HOUR_MINUTE. ΠΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ STARTS Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ STARTS CURRENT_TIMESTAMP, ΡΠΎ Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ, Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EVERY ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΡΠ»ΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ENDS. ΠΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ timestamp, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ MySQL, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ±ΡΡΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ + INTERVAL interval Ρ ENDS. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΠΊΠ°ΠΆΠ΄ΡΠ΅ Π΄Π²Π΅Π½Π°Π΄ΡΠ°ΡΡ ΡΠ°ΡΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΏΡΡΡΡ ΡΡΠΈΠ΄ΡΠ°ΡΡ ΠΌΠΈΠ½ΡΡ Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΡΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ ΡΠΎΠΆΠ΅ Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ". ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ENDS ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄ΠΎΠ»Π³ΠΎ.
ENDS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎ ΠΈ STARTS. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ STARTS, ENDS Π²ΠΌΠ΅ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠ·Π½Ρ (Π»ΠΈΠ±ΠΎ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ) Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ EVERY.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π³Π΄Π΅ STARTS ΠΈΠ»ΠΈ ENDS Π·Π°Π΄Π°Π½Ρ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ datetime, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Universal Time Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ INFORMATION_SCHEMA.EVENTS ΠΈ mysql.event, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Π² Π²ΡΠ²ΠΎΠ΄Π΅ SHOW EVENTS. ΠΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΈ ΠΠ°ΡΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»Π°Π³Π°ΡΡΡ Π½Π° ΡΡΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ (ΠΠ»ΡΠΊ #16420 ).
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ON SCHEDULE ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MySQL ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ timestamp ΠΈΠ»ΠΈ interval. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ SELECT FROM DUAL. ΠΡΠΎ ΠΈΡΡΠΈΠ½Π½ΠΎ Π΄Π»Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ CREATE EVENT ΠΈ ALTER EVENT. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ MySQL 5.1.13, ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ³Π½ΡΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ±ΠΎΠΉ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ (ΠΠ»ΡΠΊ #22830).
ΠΠ±ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ, ΠΎΠ½ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ON COMPLETION PRESERVE. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ON COMPLETION NOT PRESERVE ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ²Π½ΡΠΌ.