Ein Artikel, der Ihnen ein tiefes Verständnis von Mysql-Triggern vermittelt

Ein Artikel, der Ihnen ein tiefes Verständnis von Mysql-Triggern vermittelt

Erstellen Sie basierend auf den Tabellen „student“, „course“ und „sc“ in der Schuldatenbank Trigger, die die folgenden Anforderungen erfüllen:

數據庫navicat cmd界面運行

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 ;

Zusammenfassen

Dieser 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:
  • Themenverfeinerung für MySQL-Ereignisse und -Trigger
  • MySQL-Datenbank-Trigger vom Anfänger bis zum Profi
  • Erste Schritte mit gespeicherten Prozeduren, Triggern und Ereignisplanern in MySQL
  • Detaillierte Erläuterung des MySQL-Trigger-Trigger-Beispiels
  • Einführung in die Verwendung sowie Vor- und Nachteile von MySQL-Triggern
  • Detaillierte Erläuterung der Idee des MySQL-Triggers zur Echtzeiterkennung einer Anweisung zum Sichern und Löschen
  • Verwendung von MySQL-Triggern
  • Verwendung von MySQL-Triggern
  • Verwendung von MySQL-Triggern einfach erklärt

<<:  Lösung für den Fehler, dass IE6 select nicht durch div abgedeckt werden kann

>>:  Verwendung des SerialPort-Moduls in Node.js

Artikel empfehlen

Lernprogramm zur Verwendung des WeChat-Applets WXS

Was ist wxs? wxs (WeiXin Script) ist eine Skripts...

So erklären Sie TypeScript-Generika auf einfache Weise

Inhaltsverzeichnis Überblick Was sind Generika Sy...

So bedienen Sie Datei- und Ordnerberechtigungen unter Linux

Linux-Dateiberechtigungen Überprüfen wir zunächst...

Optimierung des MySQL Thread_Stack-Verbindungsthreads

MySQL kann nicht nur über das Netzwerk, sondern a...

Beispiel zur Identifizierung des Benutzers mithilfe eines Linux-Bash-Skripts

In Bash-Skripten oder direkt im Skript selbst ist...

Vue implementiert das Methodenbeispiel der Tab-Routing-Umschaltkomponente

Vorwort In diesem Artikel wird die Verwendung des...

Faint: „Nutzen Sie Web 2.0, um standardkonforme Seiten zu erstellen“

Heute sprach jemand mit mir über ein Website-Entw...

JavaScript implementiert die Eingabeüberprüfung im Kennwortfeld

Manchmal ist es notwendig, bei Benutzereingaben e...

So verwenden Sie Docker zum Erstellen eines Redis-Master-Slaves

1. Erstellen Sie eine Docker-Umgebung 1. Erstelle...

Detaillierte Erklärung zum Anzeigen und Einstellen des SQL-Modus in MySQL

Anzeigen und Einstellen des SQL-Modus in MySQL My...