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