1SET @@session.default_storage_engine = 'MyISAM'; 2create table t1 (a int, 3b int generated always as (a/10) virtual, 4c int generated always as (a/10) stored); 5create table t2 (a timestamp); 6create trigger trg1 before insert on t1 for each row 7begin 8if (new.b < 10) then 9set new.a:= 100; 10set new.b:= 9; 11set new.c:= 9; 12end if; 13if (new.c > 50) then 14set new.a:= 500; 15end if; 16end| 17create trigger trg2 after insert on t1 for each row 18begin 19if (new.b >= 60) then 20insert into t2 values (now()); 21end if; 22end| 23create function f1() 24returns int 25begin 26declare sum1 int default '0'; 27declare cur1 cursor for select sum(b) from t1; 28open cur1; 29fetch cur1 into sum1; 30close cur1; 31return sum1; 32end| 33set sql_warnings = 1; 34insert into t1 (a) values (200); 35select * from t1; 36a b c 37200 20 20 38select * from t2; 39a 40insert into t1 (a) values (10); 41select * from t1; 42a b c 43100 10 10 44200 20 20 45select * from t2; 46a 47insert into t1 (a) values (600); 48select * from t1; 49a b c 50100 10 10 51200 20 20 52500 50 50 53select * from t2; 54a 55select f1(); 56f1() 5780 58set sql_warnings = 0; 59drop trigger trg1; 60drop trigger trg2; 61drop table t2; 62create procedure p1() 63begin 64declare i int default '0'; 65create table t2 like t1; 66insert into t2 (a) values (100), (200); 67begin 68declare cur1 cursor for select sum(c) from t2; 69open cur1; 70fetch cur1 into i; 71close cur1; 72if (i=30) then 73insert into t1 values (300,default,default); 74end if; 75end; 76end| 77delete from t1; 78call p1(); 79select * from t2; 80a b c 81100 10 10 82200 20 20 83select * from t1; 84a b c 85300 30 30 86drop table t1,t2; 87drop procedure p1; 88DROP VIEW IF EXISTS v1,v2; 89DROP TABLE IF EXISTS t1,t2,t3; 90DROP PROCEDURE IF EXISTS p1; 91DROP FUNCTION IF EXISTS f1; 92DROP TRIGGER IF EXISTS trg1; 93DROP TRIGGER IF EXISTS trg2; 94set sql_warnings = 0; 95