Based on the student, course, and sc tables in the school database, create triggers that meet the following requirements:
1. When inserting or modifying the SC table, if the test score is not in the range of 0-100, the insertion or modification operation is canceled.DELIMITER ; DROP TRIGGER IF EXISTS `tri_update_grade`; DELIMITER ;; CREATE TRIGGER `tri_update_grade` BEFORE UPDATE ON `sc` FOR EACH ROW begin if new.grade > 100 then delete from sc; elseif new.grade < 0 then delete from sc; end if; end ;; DELIMITER ; DROP TRIGGER IF EXISTS `tri_insert_grade`; DELIMITER ;; CREATE TRIGGER `tri_insert_grade` BEFORE INSERT ON `sc` FOR EACH ROW begin if new.grade > 100 then delete from sc; elseif new.grade < 0 then delete from sc; end if; end ;; 2. When inserting into the SC table, if the total credits of the student's course selection exceed 30, an error will be reported and the insertion will be canceled.DELIMITER ; DROP TRIGGER IF EXISTS `tri_insert_credit`; DELIMITER ;; CREATE TRIGGER `tri_insert_credit` BEFORE INSERT ON `sc` FOR EACH ROW begin SELECT sum(Ccredit) INTO @sumcred from Student join SC on SC.Sno=Student.Sno join Course on Course.Cno=SC.Cno WHERE sc.Sno=new.Sno; if (@sumcred>30) then delete from sc; end if; end ;; 3. When modifying the SC table, it is not allowed to modify the course selection records of students who have failed the examination.DELIMITER ; DROP TRIGGER IF EXISTS `tri_grade`; DELIMITER ;; CREATE TRIGGER `tri_grade` BEFORE UPDATE ON `sc` FOR EACH ROW begin select grade INTO @gra from sc where sno=new.sno and sno=new.sno; if (@gra >= 60) then set new.grade=20; else delete from sc; end if; end ;; 4. When inserting into the STUDENT table, if the age is empty, the student's age is set to the average age of all students.DELIMITER ; DROP TRIGGER IF EXISTS `tri_student`; DELIMITER ;; CREATE TRIGGER `tri_student` BEFORE INSERT ON `student` FOR EACH ROW begin select avg(Sage) INTO @avgage from student; SET @old_age = new.Sage; if @old_age IS NULL then set new.Sage=@avgage; end if; end ;; 5. Add two columns to the STUDENT table to store the student's average score and grade, and automatically maintain the student's average score and grade after inserting into the SC table (85-100, grade is "excellent"; 60-85, grade is "good", below 60, grade is "poor")DELIMITER ; DROP TRIGGER IF EXISTS `tri_comment`; DELIMITER ;; CREATE TRIGGER `tri_comment` BEFORE UPDATE ON `student` FOR EACH ROW begin select avg(Grade) INTO @avggra from sc where sno=new.sno; if @avggra > 85 then update sc set new.Savg=@avggra,new.Scomment="you"; else if @avggra > 60 and @avggra <= 85 then update sc set new.Savg=@avggra,new.Scomment="you"; else update sc set new.Savg=@avggra,new.Scomment='cha'; end if; end if; end ;; DELIMITER ; SummarizeThis article ends here. I hope it can be helpful to you. I also hope that you can pay more attention to more content on 123WORDPRESS.COM! You may also be interested in:
|
<<: Solution to the bug that IE6 select cannot be covered by div
>>: Use of SerialPort module in Node.js
Preface The method of configuring IP addresses in...
Detailed explanation of MySQL stored procedures, ...
This is my first time using the element framework...
With the right settings, you can force Linux user...
1. Front-end-led implementation steps The first s...
Preface: Based on a recent medical mobile project...
Simulation tables and data scripts Copy the follo...
Next, I will install Java+Tomcat on Centos7. Ther...
The basics of MySQL knowledge points for the seco...
Table of contents 1. Preliminary preparation 1.1 ...
This article is welcome to be shared and aggregat...
MySQL escape Escape means the original semantics ...
WeChat Mini Programs are becoming more and more p...
Table of contents Ideas Request interception Resp...
This article shares simple HTML and music player ...