Erstellen Sie basierend auf den Tabellen „student“, „course“ und „sc“ in der Schuldatenbank Trigger, die die folgenden Anforderungen erfüllen:
1. Wenn beim Einfügen oder Ändern der SC-Tabelle das Testergebnis nicht im Bereich von 0 bis 100 liegt, wird der Einfüge- oder Änderungsvorgang abgebrochen.TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_update_grade` VORHANDEN ist; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_update_grade` VOR DEM UPDATE AUF `sc` FÜR JEDE ZEILE begin wenn new.grade > 100 dann aus sc löschen; sonstwenn neue.Klasse < 0 dann aus sc löschen; Ende wenn; Ende ;; TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_insert_grade` VORHANDEN ist; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_insert_grade` VOR DEM INSERT AUF `sc` FÜR JEDE ZEILE begin wenn new.grade > 100 dann aus sc löschen; sonstwenn neue.Klasse < 0 dann aus sc löschen; Ende wenn; Ende ;; 2. Wenn beim Einfügen in die SC-Tabelle die Gesamtanzahl der Credits der Kursauswahl des Studenten 30 überschreitet, wird ein Fehler gemeldet und das Einfügen wird abgebrochen.TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_insert_credit` VORHANDEN ist; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_insert_credit` VOR DEM INSERT AUF `sc` FÜR JEDE ZEILE begin SELECT Summe(Ccredit) INTO @sumcred von Student, trete SC bei auf SC.Sno=Student.Sno, trete Kurs bei auf Course.Cno=SC.Cno, WO sc.Sno=new.Sno; wenn (@sumcred>30) Dann aus sc löschen; Ende wenn; Ende ;; 3. Bei der Änderung der SC-Tabelle ist es nicht zulässig, die Kurswahldatensätze von Studierenden zu ändern, die die Prüfung nicht bestanden haben.TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_grade` EXISTIERT; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_grade` VOR DEM UPDATE AUF `sc` FÜR JEDE ZEILE begin Wählen Sie die Note INTO @gra aus sc, wobei sno=new.sno und sno=new.sno; wenn (@gra >= 60) Dann setze neue.Klasse=20; anders aus sc löschen; Ende wenn; Ende ;; 4. Wenn beim Einfügen in die STUDENT-Tabelle das Alter leer ist, wird das Alter des Schülers auf das Durchschnittsalter aller Schüler gesetzt.TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_student` EXISTIERT; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_student` VOR DEM INSERT AUF `student` FÜR JEDE ZEILE begin Wählen Sie avg(Sage) INTO @avgage vom Studenten; SET @alt_alter = neu.Sage; wenn @old_age NULL ist Dann setze neu.Sage=@avgage; Ende wenn; Ende ;; 5. Fügen Sie der STUDENT-Tabelle zwei Spalten hinzu, um die Durchschnittspunktzahl und -note des Schülers zu speichern, und behalten Sie die Durchschnittspunktzahl und -note des Schülers nach dem Einfügen in die SC-Tabelle automatisch bei (85-100, Note ist „ausgezeichnet“; 60-85, Note ist „gut“, unter 60, Note ist „schlecht“)TRENNUNGSZEICHEN ; TRIGGER LÖSCHEN, WENN `tri_comment` EXISTIERT; TRENNUNGSZEICHEN ;; ERSTELLEN SIE DEN TRIGGER `tri_comment` VOR DEM UPDATE AUF `student` FÜR JEDE ZEILE begin Wählen Sie avg(Grade) INTO @avggra aus sc, wobei sno=new.sno; wenn @avggra > 85 dann Aktualisiere SC Set new.Savg=@avggra,new.Scomment="Sie"; sonst wenn @avggra > 60 und @avggra <= 85 dann Aktualisiere SC Set new.Savg=@avggra,new.Scomment="Sie"; anders Aktualisiere SC-Set new.Savg=@avggra,new.Scomment='cha'; Ende wenn; Ende wenn; Ende ;; TRENNUNGSZEICHEN ; ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können! Das könnte Sie auch interessieren:
|
<<: Lösung für den Fehler, dass IE6 select nicht durch div abgedeckt werden kann
>>: Verwendung des SerialPort-Moduls in Node.js
In diesem Artikelbeispiel wird der spezifische Co...
Die aktuelle Umgebung ist: Centos 7.5 docker-ce 1...
Bevor die neue CSS-Eigenschaft „contain“ vorgeste...
Sicht Was ist eine Ansicht? Welche Rolle spielt e...
Wenn ich irgendwelche unklaren Fragen habe, gehe ...
Alle unten aufgeführten Blogs sind originell und ...
1. Nexus-Konfiguration 1. Erstellen Sie einen Doc...
Textschatten Textschatten: horizontaler Versatz, ...
Es gibt drei Möglichkeiten, Docker-Container mite...
1.1 Einführung in die iptables-Firewall Netfilter...
1. Einführung in das Logrotate-Tool Logrotate ist...
Inhaltsverzeichnis Die benutzerdefinierte CSS-Var...
<a href="https://www.jb51.net/" titl...
<br />Die Farbe einer Webseite ist entscheid...
Es gibt zwei Möglichkeiten, nodejs unter Linux zu...