1
set default_storage_engine='tokudb';
2
drop table if exists s,t;
3
create table s (id bigint not null primary key, x bigint);
4
insert into s values (1,0),(2,0),(3,0),(4,0);
7
insert into t select * from s;
9
create trigger t_trigger before insert on t for each row insert into s values (1000000,0);
11
insert into t select * from s on duplicate key update x=t.x+1;
12
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
14
drop trigger t_trigger;
15
create trigger t_trigger after insert on t for each row insert into s values (1000000,0);
17
insert into t select * from s on duplicate key update x=t.x+1;
18
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
20
drop trigger t_trigger;
21
create trigger t_trigger before insert on t for each row delete from s where id=1000000;
23
insert into t select * from s on duplicate key update x=t.x+1;
24
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
26
drop trigger t_trigger;
27
create trigger t_trigger after insert on t for each row delete from s where id=1000000;
29
insert into t select * from s on duplicate key update x=t.x+1;
30
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
32
drop trigger t_trigger;
33
create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000;
35
insert into t select * from s on duplicate key update x=t.x+1;
36
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
38
drop trigger t_trigger;
39
create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000;
41
insert into t select * from s on duplicate key update x=t.x+1;
42
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
44
drop trigger t_trigger;
46
insert into t values (1,0);
47
create trigger t_trigger before insert on t for each row insert into s values (1000000,0);
49
insert into t select * from s on duplicate key update x=t.x+1;
50
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
52
drop trigger t_trigger;
53
create trigger t_trigger after insert on t for each row insert into s values (1000000,0);
55
insert into t select * from s on duplicate key update x=t.x+1;
56
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
58
drop trigger t_trigger;
59
create trigger t_trigger before insert on t for each row delete from s where id=1000000;
61
insert into t select * from s on duplicate key update x=t.x+1;
62
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
64
drop trigger t_trigger;
65
create trigger t_trigger after insert on t for each row delete from s where id=1000000;
67
insert into t select * from s on duplicate key update x=t.x+1;
68
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
70
drop trigger t_trigger;
71
create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000;
73
insert into t select * from s on duplicate key update x=t.x+1;
74
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
76
drop trigger t_trigger;
77
create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000;
79
insert into t select * from s on duplicate key update x=t.x+1;
80
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
82
drop trigger t_trigger;
84
insert into t values (1,0);
85
create trigger t_trigger before update on t for each row insert into s values (1000000,0);
87
insert into t select * from s on duplicate key update x=t.x+1;
88
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
90
drop trigger t_trigger;
91
create trigger t_trigger after update on t for each row insert into s values (1000000,0);
93
insert into t select * from s on duplicate key update x=t.x+1;
94
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
96
drop trigger t_trigger;
97
create trigger t_trigger before update on t for each row delete from s where id=1000000;
99
insert into t select * from s on duplicate key update x=t.x+1;
100
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
102
drop trigger t_trigger;
103
create trigger t_trigger after update on t for each row delete from s where id=1000000;
105
insert into t select * from s on duplicate key update x=t.x+1;
106
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
108
drop trigger t_trigger;
109
create trigger t_trigger before update on t for each row update s set x=x+1 where id=1000000;
111
insert into t select * from s on duplicate key update x=t.x+1;
112
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
114
drop trigger t_trigger;
115
create trigger t_trigger after update on t for each row update s set x=x+1 where id=1000000;
117
insert into t select * from s on duplicate key update x=t.x+1;
118
ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
120
drop trigger t_trigger;