SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; set GLOBAL sql_mode=""; USE test; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', f119 char binary not null DEFAULT b'101', f120 char ascii not null DEFAULT b'101', f121 char(50), f122 char(50), f129 binary not null DEFAULT b'101', f130 tinyint not null DEFAULT 99, f131 tinyint unsigned not null DEFAULT 99, f132 tinyint zerofill not null DEFAULT 99, f133 tinyint unsigned zerofill not null DEFAULT 99, f134 smallint not null DEFAULT 999, f135 smallint unsigned not null DEFAULT 999, f136 smallint zerofill not null DEFAULT 999, f137 smallint unsigned zerofill not null DEFAULT 999, f138 mediumint not null DEFAULT 9999, f139 mediumint unsigned not null DEFAULT 9999, f140 mediumint zerofill not null DEFAULT 9999, f141 mediumint unsigned zerofill not null DEFAULT 9999, f142 int not null DEFAULT 99999, f143 int unsigned not null DEFAULT 99999, f144 int zerofill not null DEFAULT 99999, f145 int unsigned zerofill not null DEFAULT 99999, f146 bigint not null DEFAULT 999999, f147 bigint unsigned not null DEFAULT 999999, f148 bigint zerofill not null DEFAULT 999999, f149 bigint unsigned zerofill not null DEFAULT 999999, f150 decimal not null DEFAULT 999.999, f151 decimal unsigned not null DEFAULT 999.17, f152 decimal zerofill not null DEFAULT 999.999, f153 decimal unsigned zerofill, f154 decimal (0), f155 decimal (64), f156 decimal (0) unsigned, f157 decimal (64) unsigned, f158 decimal (0) zerofill, f159 decimal (64) zerofill, f160 decimal (0) unsigned zerofill, f161 decimal (64) unsigned zerofill, f162 decimal (0,0), f163 decimal (63,30), f164 decimal (0,0) unsigned, f165 decimal (63,30) unsigned, f166 decimal (0,0) zerofill, f167 decimal (63,30) zerofill, f168 decimal (0,0) unsigned zerofill, f169 decimal (63,30) unsigned zerofill, f170 numeric, f171 numeric unsigned, f172 numeric zerofill, f173 numeric unsigned zerofill, f174 numeric (0), f175 numeric (64) ) engine = ; Warnings: Note 1265 Data truncated for column 'f150' at row 0 Note 1265 Data truncated for column 'f151' at row 0 Note 1265 Data truncated for column 'f152' at row 0 Testcase: 3.5: -------------- create User test_general@localhost; set password for test_general@localhost = password('PWD'); revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost; create User test_super@localhost; set password for test_super@localhost = password('PWD'); grant ALL on *.* to test_super@localhost with grant OPTION; connect con1_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; connect con1_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK; connection default; Testcase 3.5.4: --------------- connection default; use test; Testcase 3.5.4.1: ----------------- connection con1_super; create database db_drop; Use db_drop; create table t1 (f1 char(30)) engine = ; grant INSERT, SELECT on db_drop.t1 to test_general; Use db_drop; Create trigger trg1 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.1'; connection con1_general; Use db_drop; Insert into t1 values ('Insert error 3.5.4.1'); Select * from t1 order by f1; f1 Trigger 3.5.4.1 connection con1_super; drop trigger trg1; select trigger_schema, trigger_name, event_object_table from information_schema.triggers where trigger_schema = 'db_drop' order by trigger_name; trigger_schema trigger_name event_object_table connection con1_general; Insert into t1 values ('Insert no trigger 3.5.4.1'); Select * from t1 order by f1; f1 Insert no trigger 3.5.4.1 Trigger 3.5.4.1 connection con1_super; drop trigger trg1; drop database if exists db_drop; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; Testcase 3.5.4.2: ----------------- connection con1_super; create database db_drop2; Use db_drop2; drop table if exists t1_432 ; create table t1_432 (f1 char (30)) engine = ; Drop trigger tr_does_not_exit; ERROR HY000: Trigger does not exist drop table if exists t1_432 ; drop database if exists db_drop2; Testcase 3.5.4.3: ----------------- connection con1_super; create database db_drop3; Use db_drop3; drop table if exists t1_433 ; drop table if exists t1_433a ; create table t1_433 (f1 char (30)) engine = ; create table t1_433a (f1a char (5)) engine = ; CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row set new.f1 = 'Trigger 3.5.4.3'; Drop trigger t1.433.trg3; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.trg3' at line 1 Drop trigger db_drop3.t1.433.trg3; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.433.trg3' at line 1 Drop trigger mysql.trg3; ERROR HY000: Trigger does not exist Drop trigger tbx.trg3; ERROR HY000: Trigger does not exist Drop trigger db_drop3.trg3; drop table if exists t1_433; drop table if exists t1_433a; drop database if exists db_drop3; Testcase 3.5.4.4: ----------------- connection con1_super; create database db_drop4; Use db_drop4; create table t1 (f1 char(30)) engine = ; grant INSERT, SELECT on db_drop4.t1 to test_general; Create trigger trg4 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.4'; connection con1_general; Use db_drop4; Insert into t1 values ('Insert 3.5.4.4'); Select * from t1; f1 Trigger 3.5.4.4 connection con1_super; Drop database db_drop4; Show databases like 'db_drop4'; Database (db_drop4) select trigger_schema, trigger_name, event_object_table from information_schema.triggers where information_schema.triggers.trigger_name='trg4'; trigger_schema trigger_name event_object_table create database db_drop4; Use db_drop4; create table t1 (f1 char(30)) engine = ; grant INSERT, SELECT on db_drop4.t1 to test_general; connection con1_general; Insert into t1 values ('2nd Insert 3.5.4.4'); Select * from t1; f1 2nd Insert 3.5.4.4 connection con1_super; drop trigger trg4; ERROR HY000: Trigger does not exist drop database if exists db_drop4; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; Testcase 3.5.4.5: ----------------- connection con1_super; create database db_drop5; Use db_drop5; create table t1 (f1 char(50)) engine = ; grant INSERT, SELECT on t1 to test_general; Create trigger trg5 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.5'; connection con1_general; Use db_drop5; Insert into t1 values ('Insert 3.5.4.5'); Select * from t1; f1 Trigger 3.5.4.5 connection con1_super; Drop table t1; Show tables; Tables_in_db_drop5 select trigger_schema, trigger_name, event_object_table from information_schema.triggers where information_schema.triggers.trigger_name='trg5'; trigger_schema trigger_name event_object_table create table t1 (f1 char(50)) engine = ; grant INSERT, SELECT on t1 to test_general; connection con1_general; Insert into t1 values ('2nd Insert 3.5.4.5'); Select * from t1; f1 2nd Insert 3.5.4.5 connection con1_super; drop trigger trg5; ERROR HY000: Trigger does not exist drop database if exists db_drop5; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; Testcase 3.5.5: --------------- connection default; use test; Testcase 3.5.5.1: ----------------- Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; ERROR 42S02: Table 'test.t100' doesn't exist Testcase 3.5.5.2: ----------------- Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); Create trigger trg2 before INSERT on t1_temp for each row set new.f2=9999; ERROR HY000: Trigger's 't1_temp' is a view, temporary table or sequence drop table t1_temp; Testcase 3.5.5.3: ----------------- Create view vw3 as select f118 from tb3; Create trigger trg3 before INSERT on vw3 for each row set new.f118='s'; ERROR HY000: 'test.vw3' is not of type 'BASE TABLE' drop view vw3; Testcase 3.5.5.4: ----------------- connection con1_super; create database dbtest_one; create database dbtest_two; use dbtest_two; create table t2 (f1 char(15)) engine = ; use dbtest_one; create trigger trg4 before INSERT on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; ERROR HY000: Trigger in wrong schema grant INSERT, SELECT on dbtest_two.t2 to test_general; grant SELECT on dbtest_one.* to test_general; connection con1_general; use dbtest_two; Insert into t2 values ('1st Insert 3.5.5.4'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 Select * from t2; f1 1st Insert 3.5. use dbtest_one; Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 Select * from dbtest_two.t2 order by f1; f1 1st Insert 3.5. 2nd Insert 3.5. connection con1_super; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; DROP DATABASE if exists dbtest_one; drop database if EXISTS dbtest_two; Testcase 3.5.6: --------------- connection default; use test; Testcase 3.5.6.1 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.6.2 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.6.3: ----------------- Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1 Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TIME INSERT on tb3 for each row set new.f132=15' at line 1 drop trigger tb3.trg3_1; drop trigger tb3.trg3_2; Testcase 3.5.6.4 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.6.5 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.7.1 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.7.2 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.7.3 (see Testcase 3.5.1.1) --------------------------------------- Testcase 3.5.7.4: ----------------- Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT on tb3 for each row set new.f132=5' at line 1 Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VALUE on tb3 for each row set new.f132=1' at line 1 drop trigger tb3.trg4_1; drop trigger tb3.trg4_2; Testcase 3.5.7.5 / 3.5.7.6: --------------------------- Create trigger trg5_1 BEFORE INSERT on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; Create trigger trg5_2 BEFORE INSERT on tb3 for each row set new.f122='Trigger2 3.5.7.5'; Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; f121 f122 Test 3.5.7.5/6 Trigger2 3.5.7.5 update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6'; Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; f121 f122 Test 3.5.7.5/6 Update 3.5.7.6 drop trigger trg5_1; drop trigger trg5_2; delete from tb3 where f121='Test 3.5.7.5/6'; Testcase 3.5.7.7 / 3.5.7.8: --------------------------- set @test_var='Before trig 3.5.7.7'; Create trigger trg6_1 AFTER INSERT on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; Create trigger trg6_2 AFTER INSERT on tb3 for each row set @test_var='Trigger2 3.5.7.7'; select @test_var; @test_var Before trig 3.5.7.7 Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7'); Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; f121 f122 Test 3.5.7.7/8 Insert 3.5.7.7 select @test_var; @test_var Trigger2 3.5.7.7 update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8'; Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; f121 f122 Test 3.5.7.7/8 Update 3.5.7.8 select @test_var; @test_var Trigger2 3.5.7.7 drop trigger trg6_1; drop trigger trg6_2; delete from tb3 where f121='Test 3.5.7.7/8'; Testcase 3.5.7.9/10: -------------------- Create trigger trg7_1 BEFORE UPDATE on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; Create trigger trg7_2 BEFORE UPDATE on tb3 for each row set new.f122='Trigger2 3.5.7.9'; Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; f121 f122 Test 3.5.7.9/10 Insert 3.5.7.9 update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10'; Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; f121 f122 Test 3.5.7.9/10 Trigger2 3.5.7.9 drop trigger trg7_1; drop trigger trg7_2; delete from tb3 where f121='Test 3.5.7.9/10'; Testcase 3.5.7.11/12: --------------------- set @test_var='Before trig 3.5.7.11'; Create trigger trg8_1 AFTER UPDATE on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; Create trigger trg8_2 AFTER UPDATE on tb3 for each row set @test_var='Trigger2 3.5.7.11'; select @test_var; @test_var Before trig 3.5.7.11 Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12'); select @test_var; @test_var Before trig 3.5.7.11 Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; f121 f122 Test 3.5.7.11/12 Insert 3.5.7.11/12 update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12'; Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; f121 f122 Test 3.5.7.11/12 update 3.5.7.12 select @test_var; @test_var Trigger2 3.5.7.11 delete from tb3 where f121='Test 3.5.7.11/12'; drop trigger trg8_1; drop trigger trg8_2; delete from tb3 where f121='Test 3.5.7.11/12'; Testcase 3.5.7.13/14: --------------------- set @test_var=1; Create trigger trg9_1 BEFORE DELETE on tb3 for each row set @test_var=@test_var+1; Create trigger trg9_2 BEFORE DELETE on tb3 for each row set @test_var=@test_var+10; select @test_var; @test_var 1 Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13'); Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; f121 f122 Test 3.5.7.13/14 Insert 3.5.7.13 select @test_var; @test_var 1 delete from tb3 where f121='Test 3.5.7.13/14'; Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; f121 f122 select @test_var; @test_var 12 delete from tb3 where f121='Test 3.5.7.13/14'; select @test_var; @test_var 12 drop trigger trg9_1; drop trigger trg9_2; delete from tb3 where f121='Test 3.5.7.13/14'; Testcase 3.5.7.15/16: --------------------- set @test_var=1; Create trigger trg_3_406010_1 AFTER DELETE on tb3 for each row set @test_var=@test_var+5; Create trigger trg_3_406010_2 AFTER DELETE on tb3 for each row set @test_var=@test_var+50; Create trigger trg_3_406010_1 AFTER INSERT on tb3 for each row set @test_var=@test_var+1; ERROR HY000: Trigger 'test.trg_3_406010_1' already exists select @test_var; @test_var 1 Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16'); Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; f121 f122 Test 3.5.7.15/16 Insert 3.5.7.15/16 select @test_var; @test_var 1 delete from tb3 where f121='Test 3.5.7.15/16'; Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; f121 f122 select @test_var; @test_var 56 delete from tb3 where f121='Test 3.5.7.15/16'; select @test_var; @test_var 56 drop trigger trg_3_406010_1; drop trigger trg_3_406010_2; delete from tb3 where f121='Test 3.5.7.15/16'; Testcase 3.5.7.17 (see Testcase 3.5.1.1) ---------------------------------------- connection default; drop user test_general@localhost; drop user test_general; drop user test_super@localhost; DROP TABLE test.tb3; set GLOBAL sql_mode=default;