1set default_storage_engine='tokudb'; 2drop table if exists s,t; 3create table s (id bigint not null primary key, x bigint); 4insert into s values (1,0),(2,0),(3,0),(4,0); 5create table t like s; 6begin; 7insert into t select * from s; 8rollback; 9create trigger t_trigger before insert on t for each row insert into s values (1000000,0); 10begin; 11insert into t select * from s on duplicate key update x=t.x+1; 12ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 13rollback; 14drop trigger t_trigger; 15create trigger t_trigger after insert on t for each row insert into s values (1000000,0); 16begin; 17insert into t select * from s on duplicate key update x=t.x+1; 18ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 19rollback; 20drop trigger t_trigger; 21create trigger t_trigger before insert on t for each row delete from s where id=1000000; 22begin; 23insert into t select * from s on duplicate key update x=t.x+1; 24ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 25rollback; 26drop trigger t_trigger; 27create trigger t_trigger after insert on t for each row delete from s where id=1000000; 28begin; 29insert into t select * from s on duplicate key update x=t.x+1; 30ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 31rollback; 32drop trigger t_trigger; 33create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000; 34begin; 35insert into t select * from s on duplicate key update x=t.x+1; 36ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 37rollback; 38drop trigger t_trigger; 39create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000; 40begin; 41insert into t select * from s on duplicate key update x=t.x+1; 42ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 43rollback; 44drop trigger t_trigger; 45truncate table t; 46insert into t values (1,0); 47create trigger t_trigger before insert on t for each row insert into s values (1000000,0); 48begin; 49insert into t select * from s on duplicate key update x=t.x+1; 50ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 51rollback; 52drop trigger t_trigger; 53create trigger t_trigger after insert on t for each row insert into s values (1000000,0); 54begin; 55insert into t select * from s on duplicate key update x=t.x+1; 56ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 57rollback; 58drop trigger t_trigger; 59create trigger t_trigger before insert on t for each row delete from s where id=1000000; 60begin; 61insert into t select * from s on duplicate key update x=t.x+1; 62ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 63rollback; 64drop trigger t_trigger; 65create trigger t_trigger after insert on t for each row delete from s where id=1000000; 66begin; 67insert into t select * from s on duplicate key update x=t.x+1; 68ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 69rollback; 70drop trigger t_trigger; 71create trigger t_trigger before insert on t for each row update s set x=x+1 where id=1000000; 72begin; 73insert into t select * from s on duplicate key update x=t.x+1; 74ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 75rollback; 76drop trigger t_trigger; 77create trigger t_trigger after insert on t for each row update s set x=x+1 where id=1000000; 78begin; 79insert into t select * from s on duplicate key update x=t.x+1; 80ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 81rollback; 82drop trigger t_trigger; 83truncate table t; 84insert into t values (1,0); 85create trigger t_trigger before update on t for each row insert into s values (1000000,0); 86begin; 87insert into t select * from s on duplicate key update x=t.x+1; 88ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 89rollback; 90drop trigger t_trigger; 91create trigger t_trigger after update on t for each row insert into s values (1000000,0); 92begin; 93insert into t select * from s on duplicate key update x=t.x+1; 94ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 95rollback; 96drop trigger t_trigger; 97create trigger t_trigger before update on t for each row delete from s where id=1000000; 98begin; 99insert into t select * from s on duplicate key update x=t.x+1; 100ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 101rollback; 102drop trigger t_trigger; 103create trigger t_trigger after update on t for each row delete from s where id=1000000; 104begin; 105insert into t select * from s on duplicate key update x=t.x+1; 106ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 107rollback; 108drop trigger t_trigger; 109create trigger t_trigger before update on t for each row update s set x=x+1 where id=1000000; 110begin; 111insert into t select * from s on duplicate key update x=t.x+1; 112ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 113rollback; 114drop trigger t_trigger; 115create trigger t_trigger after update on t for each row update s set x=x+1 where id=1000000; 116begin; 117insert into t select * from s on duplicate key update x=t.x+1; 118ERROR HY000: Can't update table 's' in stored function/trigger because it is already used by statement which invoked this stored function/trigger 119rollback; 120drop trigger t_trigger; 121drop table s,t; 122