2006-01-11 18:09:05 +01:00
|
|
|
|
create database if not exists events_test;
|
|
|
|
|
use events_test;
|
2005-12-15 14:12:28 +01:00
|
|
|
|
drop event if exists event1;
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1305 Event event1 does not exist
|
|
|
|
|
create event event1 on schedule every 15 minute starts now() ends date_add(now(), interval 5 hour) DO begin end;
|
2006-01-24 16:04:35 +01:00
|
|
|
|
alter event event1 rename to event2 enable;
|
|
|
|
|
alter event event2 disable;
|
|
|
|
|
alter event event2 enable;
|
2006-01-20 16:12:44 +01:00
|
|
|
|
alter event event2 on completion not preserve;
|
|
|
|
|
alter event event2 on schedule every 1 year on completion preserve rename to event3 comment "new comment" do begin select 1; end__
|
|
|
|
|
alter event event3 rename to event2;
|
2005-12-15 14:12:28 +01:00
|
|
|
|
drop event event2;
|
|
|
|
|
create event event2 on schedule every 2 second starts now() ends date_add(now(), interval 5 hour) comment "some" DO begin end;
|
|
|
|
|
drop event event2;
|
2006-01-20 22:24:58 +01:00
|
|
|
|
create event e_43 on schedule every 1 second do set @a = 5;
|
|
|
|
|
set global event_scheduler = 1;
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
alter event e_43 do alter event e_43 do set @a = 4;
|
|
|
|
|
select sleep(3);
|
|
|
|
|
sleep(3)
|
|
|
|
|
0
|
|
|
|
|
select db, name, body, status, interval_field, interval_value from mysql.event;
|
|
|
|
|
db name body status interval_field interval_value
|
|
|
|
|
events_test e_43 set @a = 4 ENABLED SECOND 1
|
|
|
|
|
drop event e_43;
|
|
|
|
|
select sleep(1);
|
|
|
|
|
sleep(1)
|
|
|
|
|
0
|
|
|
|
|
set global event_scheduler = 0;
|
2005-12-15 14:12:28 +01:00
|
|
|
|
create table t_event3 (a int, b float);
|
|
|
|
|
drop event if exists event3;
|
|
|
|
|
Warnings:
|
|
|
|
|
Note 1305 Event event3 does not exist
|
|
|
|
|
create event event3 on schedule every 50 + 10 minute starts date_add("20010101", interval 5 minute) ends date_add("20151010", interval 5 day) comment "portokala_comment" DO insert into t_event3 values (unix_timestamp(), rand());
|
|
|
|
|
set max_allowed_packet=128000000;
|
|
|
|
|
select count(*) from t_event3;
|
|
|
|
|
count(*)
|
|
|
|
|
0
|
|
|
|
|
drop event event3;
|
|
|
|
|
drop table t_event3;
|
2006-01-26 22:18:40 +01:00
|
|
|
|
create event e_26 on schedule at '2017-01-01 00:00:00' disable do set @a = 5;
|
2006-01-26 21:21:21 +01:00
|
|
|
|
select db, name, body, definer, convert_tz(execute_at, 'UTC', 'SYSTEM'), on_completion from mysql.event;
|
|
|
|
|
db name body definer convert_tz(execute_at, 'UTC', 'SYSTEM') on_completion
|
|
|
|
|
events_test e_26 set @a = 5 root@localhost 2017-01-01 00:00:00 DROP
|
|
|
|
|
drop event e_26;
|
|
|
|
|
create event e_26 on schedule at NULL disabled do set @a = 5;
|
|
|
|
|
ERROR HY000: Incorrect AT value: 'NULL'
|
|
|
|
|
create event e_26 on schedule at 'definitely not a datetime' disabled do set @a = 5;
|
|
|
|
|
ERROR HY000: Incorrect AT value: 'definitely not a datetime'
|
2006-01-11 18:09:05 +01:00
|
|
|
|
set names utf8;
|
|
|
|
|
create event задачка on schedule every 123 minute starts now() ends now() + interval 1 month do select 1;
|
|
|
|
|
drop event задачка;
|
|
|
|
|
set event_scheduler=0;
|
|
|
|
|
ERROR HY000: Variable 'event_scheduler' is a GLOBAL variable and should be set with SET GLOBAL
|
|
|
|
|
set global event_scheduler=2;
|
|
|
|
|
ERROR 42000: Variable 'event_scheduler' can't be set to the value of '2'
|
2006-01-30 13:15:23 +01:00
|
|
|
|
create event one_event on schedule every 10 second do select 123;
|
|
|
|
|
SHOW EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events;
|
|
|
|
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT
|
|
|
|
|
NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE
|
|
|
|
|
CREATE DATABASE events_test2;
|
|
|
|
|
CREATE USER ev_test@localhost;
|
|
|
|
|
GRANT ALL ON events_test.* to ev_test@localhost;
|
|
|
|
|
GRANT ALL on events_test2.* to ev_test@localhost;
|
|
|
|
|
REVOKE EVENT ON events_test2.* FROM ev_test@localhost;
|
|
|
|
|
REVOKE PROCESS on *.* from ev_test@localhost;
|
|
|
|
|
select "NEW CONNECTION";
|
|
|
|
|
NEW CONNECTION
|
|
|
|
|
NEW CONNECTION
|
|
|
|
|
SELECT USER(), DATABASE();
|
|
|
|
|
USER() DATABASE()
|
|
|
|
|
ev_test@localhost events_test2
|
|
|
|
|
SHOW GRANTS;
|
|
|
|
|
Grants for ev_test@localhost
|
|
|
|
|
GRANT USAGE ON *.* TO 'ev_test'@'localhost'
|
|
|
|
|
GRANT ALL PRIVILEGES ON `events_test`.* TO 'ev_test'@'localhost'
|
|
|
|
|
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `events_test2`.* TO 'ev_test'@'localhost'
|
|
|
|
|
select "Here comes an error:";
|
|
|
|
|
Here comes an error:
|
|
|
|
|
Here comes an error:
|
|
|
|
|
SHOW EVENTS;
|
|
|
|
|
ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_test2'
|
|
|
|
|
USE events_test;
|
|
|
|
|
select "Now the list should be empty:";
|
|
|
|
|
Now the list should be empty:
|
|
|
|
|
Now the list should be empty:
|
|
|
|
|
SHOW EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
select concat("Let's create some new events from the name of ",user());
|
|
|
|
|
concat("Let's create some new events from the name of ",user())
|
|
|
|
|
Let's create some new events from the name of ev_test@localhost
|
|
|
|
|
create event one_event on schedule every 20 second do select 123;
|
|
|
|
|
create event two_event on schedule every 20 second on completion not preserve comment "two event" do select 123;
|
|
|
|
|
create event three_event on schedule every 20 second on completion preserve comment "three event" do select 123;
|
|
|
|
|
select "Now we should see 3 events:";
|
|
|
|
|
Now we should see 3 events:
|
|
|
|
|
Now we should see 3 events:
|
|
|
|
|
SHOW EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
select "This should show us only 3 events:";
|
|
|
|
|
This should show us only 3 events:
|
|
|
|
|
This should show us only 3 events:
|
|
|
|
|
SHOW FULL EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
select "This should show us only 2 events:";
|
|
|
|
|
This should show us only 2 events:
|
|
|
|
|
This should show us only 2 events:
|
|
|
|
|
SHOW FULL EVENTS LIKE 't%event';
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
select "This should show us no events:";
|
|
|
|
|
This should show us no events:
|
|
|
|
|
This should show us no events:
|
|
|
|
|
SHOW FULL EVENTS FROM test LIKE '%';
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
DROP DATABASE events_test2;
|
|
|
|
|
select "should see 1 event:";
|
|
|
|
|
should see 1 event:
|
|
|
|
|
should see 1 event:
|
|
|
|
|
SHOW EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
select "we should see 4 events now:";
|
|
|
|
|
we should see 4 events now:
|
|
|
|
|
we should see 4 events now:
|
|
|
|
|
SHOW FULL EVENTS;
|
|
|
|
|
Db Name Definer Type Execute at Interval value Interval field Starts Ends Status
|
|
|
|
|
events_test one_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test three_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test two_event ev_test@localhost RECURRING NULL 20 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
events_test one_event root@localhost RECURRING NULL 10 INTERVAL_SECOND # # ENABLED
|
|
|
|
|
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT from information_schema.events;
|
|
|
|
|
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT
|
|
|
|
|
NULL events_test one_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE
|
|
|
|
|
NULL events_test three_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED PRESERVE three event
|
|
|
|
|
NULL events_test two_event ev_test@localhost select 123 RECURRING NULL 20 INTERVAL_SECOND ENABLED NOT PRESERVE two event
|
|
|
|
|
NULL events_test one_event root@localhost select 123 RECURRING NULL 10 INTERVAL_SECOND ENABLED NOT PRESERVE
|
|
|
|
|
drop event one_event;
|
|
|
|
|
drop event two_event;
|
|
|
|
|
drop event three_event;
|
|
|
|
|
drop user ev_test@localhost;
|
|
|
|
|
drop event one_event;
|
2006-01-11 18:09:05 +01:00
|
|
|
|
set global event_scheduler=0;
|
|
|
|
|
select count(*) from mysql.event;
|
|
|
|
|
count(*)
|
|
|
|
|
0
|
|
|
|
|
select get_lock("test_lock1", 20);
|
|
|
|
|
get_lock("test_lock1", 20)
|
|
|
|
|
1
|
|
|
|
|
create event закачка on schedule every 10 hour do select get_lock("test_lock1", 20);
|
|
|
|
|
select count(*) from mysql.event;
|
|
|
|
|
count(*)
|
|
|
|
|
1
|
|
|
|
|
select release_lock("test_lock1");
|
|
|
|
|
release_lock("test_lock1")
|
|
|
|
|
1
|
|
|
|
|
drop event закачка;
|
|
|
|
|
select count(*) from mysql.event;
|
|
|
|
|
count(*)
|
|
|
|
|
0
|
|
|
|
|
set global event_scheduler=1;
|
|
|
|
|
select get_lock("test_lock2", 20);
|
|
|
|
|
get_lock("test_lock2", 20)
|
|
|
|
|
1
|
|
|
|
|
create event закачка on schedule every 10 hour do select get_lock("test_lock2", 20);
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
select release_lock("test_lock2");
|
|
|
|
|
release_lock("test_lock2")
|
|
|
|
|
1
|
|
|
|
|
drop event закачка;
|
|
|
|
|
set global event_scheduler=1;
|
|
|
|
|
select get_lock("test_lock2_1", 20);
|
|
|
|
|
get_lock("test_lock2_1", 20)
|
|
|
|
|
1
|
|
|
|
|
create event закачка21 on schedule every 10 hour do select get_lock("test_lock2_1", 20);
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
set global event_scheduler=0;
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
select release_lock("test_lock2_1");
|
|
|
|
|
release_lock("test_lock2_1")
|
|
|
|
|
1
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
drop event закачка21;
|
|
|
|
|
set global event_scheduler=1;
|
|
|
|
|
select get_lock("test_lock3", 20);
|
|
|
|
|
get_lock("test_lock3", 20)
|
|
|
|
|
1
|
|
|
|
|
create event закачка on schedule every 10 hour do select get_lock("test_lock3", 20);
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
drop event закачка;
|
|
|
|
|
select release_lock("test_lock3");
|
|
|
|
|
release_lock("test_lock3")
|
|
|
|
|
1
|
|
|
|
|
set global event_scheduler=0;
|
|
|
|
|
select sleep(2);
|
|
|
|
|
sleep(2)
|
|
|
|
|
0
|
|
|
|
|
drop database events_test;
|