用phpmyadmin新增不了觸發器
阿新 • • 發佈:2019-01-31
本來我是用navicat for mysql 在本地測試,新增觸發器是OK的。
但是在伺服器時 我用phpmyadmin 新增,報語法錯誤,才知道phpmyadmin是新增不了觸發器的。
改用navicat for mysql 工具就可以了
觸發器語法和SQL Server有所不同,變數的賦值之類的,下面是語法案例
DROP TRIGGER IF EXISTS exam_trigger; create trigger exam_trigger after insert on exam FOR EACH ROW BEGIN DECLARE peoplecount int; DECLARE newclasssize int; DECLARE newmodifycount int; select count(*) INTO peoplecount from exam where examschool = NEW.examschool and examnum = NEW.examnum; select classsize,modifycount INTO newclasssize,newmodifycount from examschool where eschool = NEW.examschool; IF(peoplecount = newclasssize*21) THEN IF(NEW.examschool='翠竹' || NEW.examschool='園嶺') THEN IF(newmodifycount<=1) THEN update examschool set classsize=classsize+2,modifycount=modifycount+1 where eschool = NEW.examschool; ELSEIF(newmodifycount=2) THEN update examschool set classsize=classsize+1,modifycount=modifycount+1 where eschool = NEW.examschool; END IF; ELSEIF(NEW.examschool='蓮花北') THEN IF(newmodifycount=0) THEN update examschool set classsize=classsize+2,modifycount=modifycount+1 where eschool = NEW.examschool; ELSEIF(newmodifycount=1) THEN update examschool set classsize=classsize+1,modifycount=modifycount+1 where eschool = NEW.examschool; END IF; ELSEIF(NEW.examschool='益田' && newmodifycount<=2) THEN update examschool set classsize=classsize+1,modifycount=modifycount+1 where eschool = NEW.examschool; ELSEIF(NEW.examschool='景田' && newmodifycount<=4) THEN update examschool set classsize=classsize+1,modifycount=modifycount+1 where eschool = NEW.examschool; END IF; END IF; END