📄 memory_trig_08.result
字号:
select f120, f122, f136, @test_var, @test_var2from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;f120 f122 f136 @test_var @test_var2d Test 3.5.8.5-if 00010 three 2nd ifD Test 3.5.8.5-if 00101 three 2nd ifD Test 3.5.8.5-if 00102 three 2nd ifInsert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);select f120, f122, f136, @test_var, @test_var2from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;f120 f122 f136 @test_var @test_var2d Test 3.5.8.5-if 00010 three 2nd elseD Test 3.5.8.5-if 00101 three 2nd elseD Test 3.5.8.5-if 00102 three 2nd elseD Test 3.5.8.5-if 00103 three 2nd elsecreate trigger trg3 before update on tb3 for each rowBEGINELSEIF new.f120='2' thenEND IF;END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSEIF new.f120='2' thenEND IF;END' at line 3drop trigger trg3//create trigger trg4 before update on tb3 for each rowBEGINIF (new.f120='4') and (new.f136=10) thenset @test_var2='2nd if', new.f120='d';ELSEset @test_var2='2nd else', new.f120='D';END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7drop trigger trg4;drop trigger trg2;delete from tb3 where f121='Test 3.5.8.5-if';Testcase 3.5.8.5-case:----------------------create trigger trg3 before insert on tb3 for each rowBEGINSET new.f120=char(ascii(new.f120)-32);CASEwhen new.f136<100 then set new.f136=new.f136+120;when new.f136<10 then set new.f144=777;when new.f136>100 then set new.f120=new.f136-1;END case;CASEwhen new.f136=200 then set @test_var=CONCAT(new.f120, '=');ELSE set @test_var=concat(new.f120, '*');END case;CASE new.f144when 1 then set @test_var=concat(@test_var, 'one');when 2 then set @test_var=concat(@test_var, 'two');when 3 then set @test_var=concat(@test_var, 'three');when 4 then set @test_var=concat(@test_var, 'four');when 5 then set @test_var=concat(@test_var, 'five');when 6 then set @test_var=concat(@test_var, 'six');when 7 then set @test_var=concat(@test_var, 'seven');when 8 then set @test_var=concat(@test_var, 'eight');when 9 then set @test_var=concat(@test_var, 'nine');when 10 then set @test_var=concat(@test_var, 'ten');when 11 then set @test_var=concat(@test_var, 'eleven');when 12 then set @test_var=concat(@test_var, 'twelve');when 13 then set @test_var=concat(@test_var, 'thirteen');when 14 then set @test_var=concat(@test_var, 'fourteen');when 15 then set @test_var=concat(@test_var, 'fifteen');ELSE set @test_var=CONCAT(new.f120, '*', new.f144);END case;END//set @test_var='Empty';Insert into tb3 (f120, f122, f136, f144)values ('a', 'Test 3.5.8.5-case', 5, 7);select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_varA Test 3.5.8.5-case 00125 0000000007 A*sevenInsert into tb3 (f120, f122, f136, f144)values ('b', 'Test 3.5.8.5-case', 71,16);select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_varA Test 3.5.8.5-case 00125 0000000007 B*0000000016B Test 3.5.8.5-case 00191 0000000016 B*0000000016Insert into tb3 (f120, f122, f136, f144)values ('c', 'Test 3.5.8.5-case', 80,1);select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_varA Test 3.5.8.5-case 00125 0000000007 C=oneB Test 3.5.8.5-case 00191 0000000016 C=oneC Test 3.5.8.5-case 00200 0000000001 C=oneInsert into tb3 (f120, f122, f136)values ('d', 'Test 3.5.8.5-case', 152);Warnings:Warning 1265 Data truncated for column 'f120' at row 1select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_var1 Test 3.5.8.5-case 00152 0000099999 1*0000099999A Test 3.5.8.5-case 00125 0000000007 1*0000099999B Test 3.5.8.5-case 00191 0000000016 1*0000099999C Test 3.5.8.5-case 00200 0000000001 1*0000099999Insert into tb3 (f120, f122, f136, f144)values ('e', 'Test 3.5.8.5-case', 200, 8);Warnings:Warning 1265 Data truncated for column 'f120' at row 1select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_var1 Test 3.5.8.5-case 00152 0000099999 1=eight1 Test 3.5.8.5-case 00200 0000000008 1=eightA Test 3.5.8.5-case 00125 0000000007 1=eightB Test 3.5.8.5-case 00191 0000000016 1=eightC Test 3.5.8.5-case 00200 0000000001 1=eightInsert into tb3 (f120, f122, f136, f144)values ('f', 'Test 3.5.8.5-case', 100, 8);select f120, f122, f136, f144, @test_varfrom tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;f120 f122 f136 f144 @test_var1 Test 3.5.8.5-case 00152 0000099999 1=eight1 Test 3.5.8.5-case 00200 0000000008 1=eightA Test 3.5.8.5-case 00125 0000000007 1=eightB Test 3.5.8.5-case 00191 0000000016 1=eightC Test 3.5.8.5-case 00200 0000000001 1=eightcreate trigger trg3a before update on tb3 for each rowBEGINCASEwhen new.f136<100 then set new.f120='p';END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5drop trigger trg3a;drop trigger trg3;delete from tb3 where f121='Test 3.5.8.5-case';Testcase 3.5.8.5-loop/leave:----------------------------Create trigger trg4 after insert on tb3 for each rowBEGINset @counter=0, @flag='Initial';Label1: loopif new.f136<new.f144 thenset @counter='Nothing to loop';leave Label1;elseset @counter=@counter+1;if new.f136=new.f144+@counter thenset @counter=concat(@counter, ' loops');leave Label1;end if;end if;iterate label1;set @flag='Final';END loop Label1;END//Insert into tb3 (f122, f136, f144)values ('Test 3.5.8.5-loop', 2, 8);select @counter, @flag;@counter @flagNothing to loop InitialInsert into tb3 (f122, f136, f144)values ('Test 3.5.8.5-loop', 11, 8);select @counter, @flag;@counter @flag3 loops InitialCreate trigger trg4_2 after update on tb3 for each rowBEGINLabel1: loopset @counter=@counter+1;END;END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';END' at line 5drop trigger trg4_2;drop trigger trg4;delete from tb3 where f122='Test 3.5.8.5-loop';Testcase 3.5.8.5-repeat:------------------------Create trigger trg6 after insert on tb3 for each rowBEGINrp_label: REPEATSET @counter1 = @counter1 + 1;IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label; END IF;SET @counter2 = @counter2 + 1;UNTIL @counter1> new.f136 END REPEAT rp_label;END//set @counter1= 0, @counter2= 0;Insert into tb3 (f122, f136)values ('Test 3.5.8.5-repeat', 13);select @counter1, @counter2;@counter1 @counter215 8Create trigger trg6_2 after update on tb3 for each rowBEGINREPEATSET @counter2 = @counter2 + 1;END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5drop trigger trg6;delete from tb3 where f122='Test 3.5.8.5-repeat';Testcase 3.5.8.5-while:-----------------------Create trigger trg7 after insert on tb3 for each rowwl_label: WHILE @counter1 < new.f136 DOSET @counter1 = @counter1 + 1;IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; END IF;SET @counter2 = @counter2 + 1;END WHILE wl_label//set @counter1= 0, @counter2= 0;Insert into tb3 (f122, f136)values ('Test 3.5.8.5-while', 7);select @counter1, @counter2;@counter1 @counter27 4Create trigger trg7_2 after update on tb3 for each rowBEGINWHILE @counter1 < new.f136SET @counter1 = @counter1 + 1;END//ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1;END' at line 4delete from tb3 where f122='Test 3.5.8.5-while';drop trigger trg7;Testcase 3.5.8.6: (requirement void)------------------------------------CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END//CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROWBEGINCALL sp_01 ();END//Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101);update tb3 set f120='S', f136=111,f122='Test 3.5.8.6-tr8_1' where f122='Test 3.5.8.6-insert';select f120, f122from tb3 where f122 like 'Test 3.5.8.6%' order by f120;f120 f122S Test 3.5.8.6-tr8_1DROP TRIGGER trg8_1;DROP PROCEDURE sp_01;Testcase 3.5.8.7----------------Create trigger trg9_1 before update on tb3 for each rowBEGINStart transaction;Set new.f120='U';Commit;END//ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.Create trigger trg9_2 before delete on tb3 for each rowBEGINStart transaction;Set @var2=old.f120;Rollback;END//ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.drop user test_general@localhost;drop user test_general;drop user test_super@localhost;DROP TABLE test.tb3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -