1. Tabellen erstellen <br /> Erstellen Sie zunächst zwei Tabellen (Benutzertabelle und Zahlentabelle). Das konkrete Design sieht wie folgt aus: 2. Gespeicherte Prozedur <br /> Schreiben Sie eine gespeicherte Prozedur, um Daten in die Benutzertabelle einzufügen. Der Erstellungsprozess läuft wie folgt ab: Der Code lautet wie folgt BEGINNEN #Routinekörper kommt hier hin... deklariere n Bigint; Menge n = 201121029684; während n <= 201121029694 Tun in Benutzer (Studenten-ID) Werte (n) einfügen; setze n = n + 1; Ende während; ENDE
Die gesamte gespeicherte Prozedur wurde geschrieben. Dies ist natürlich nur ein sehr einfaches Beispiel und dient nur als Referenz. 3. Auslöser Bevor wir den Trigger schreiben, löschen wir zunächst die Benutzerdaten Tabellenbenutzer abschneiden; Jetzt haben wir zwei Tabellen. Was ich tun muss, ist, dass sich die Nummer entsprechend ändert, wenn ich Daten in Benutzer einfüge: Beispielsweise gibt es in der Zahlentabelle Anfangsdaten: ID=1, Num=0; Wenn ich ein Datenelement in Benutzer einfüge, wird das Num-Feld in der Zahlentabelle ausgelöst, um 1 zu erhöhen, was bedeutet, dass die Anzahl der Benutzer aufgezeichnet wird. Lassen Sie uns diese kleine Funktionalität implementieren. Klicken Sie mit der rechten Maustaste auf die Benutzertabelle und wählen Sie Entwurfstabelle
beginnen Update-Nummer Setze Num = (wähle Anzahl(*) aus den Benutzern aus); Ende Fügen Sie nach dem Speichern neue Daten zur Benutzertabelle hinzu und überprüfen Sie die Daten in der Nummer. Sie werden wie durch Zauberhand feststellen, dass sich auch die Daten in der Nummerntabelle geändert haben. Probieren Sie es selbst aus! PS: Gespeicherte Prozeduren müssen vom Programmierer selbst ausgeführt werden, während Trigger, wie der Name schon sagt, automatisch ausgelöst werden. 4. Verwendung des Cursors <br /> Ich möchte jetzt 100 zum Feld student_ID hinzufügen. Ich werde dieses Beispiel verwenden, um einfach die Verwendung von Cursorn zu demonstrieren. Erstellen Sie eine gespeicherte Prozedur. Informationen zur Erstellungsmethode finden Sie in den obigen Schritten. Der Code der gespeicherten Prozedur lautet wie folgt: BEGINNEN #Routinekörper kommt hier hin... Deklariere tmp bigint als Standard 0; deklariere cur CURSOR FOR SELECT student_ID FROM users; -- definiere den Cursor/* 02000 Eine der folgenden Ausnahmen ist aufgetreten: Das Ergebnis einer SELECT INTO-Anweisung oder einer Unterabfrage einer INSERT-Anweisung ist eine leere Tabelle. Die Anzahl der innerhalb der durchsuchten UPDATE- oder DELETE-Anweisung identifizierten Zeilen ist Null. Die in der FETCH-Anweisung referenzierte Cursorposition liegt nach der letzten Zeile der Ergebnistabelle. */ Deklarieren Sie CONTINUE HANDLER FÜR SQLSTATE „02000“, setzen Sie tmp = 0; OPEN cur; – Öffnet den Cursor. FETCH cur INTO tmp; – Bewegt den Cursor einen Schritt nach unten. WHILE (tmp != 0) TUN select tmp; -- Drucken Sie tmp aus und Sie werden feststellen, dass tmp wie ein Zeiger ist. Es zeigt auf die erste Zeile am Anfang. Wenn sich der Cursor einen Schritt bewegt, zeigt er auf die nächste Datensatzzeile UPDATE users SET student_ID = tmp + 100 WO student_ID = tmp; Hole aktuelles in tmp; ENDE WÄHREND; CLOSE cur; -- Cursor schließen END Führen Sie die oben gespeicherte Prozedur aus und Sie werden feststellen, dass sich die Daten in den Benutzern wie gewünscht geändert haben. Das könnte Sie auch interessieren:
|
<<: Der Unterschied zwischen clientWidth, offsetWidth, scrollWidth in JavaScript
>>: So verwalten Sie Docker über die Benutzeroberfläche
Wenn Sie eine virtuelle Maschine verwenden, stell...
1. Entpacken Sie die Datei an den gewünschten Ort...
Inhaltsverzeichnis 1. Einführung in das Docker-Ma...
1. Laden Sie die Software herunter 1. Gehen Sie a...
Inhaltsverzeichnis 1. Was ist Promise? 2. Warum g...
Konfigurationsanweisungen Linux-System: CentOS-7....
1. Einleitung Wenn die Datenmenge in der Datenban...
Teil 1 HTML <html> – Start-Tag <Kopf>...
Erstellen einer neuen Tabelle CREATE TABLE `Perso...
Die Datenbankmigration ist ein Problem, auf das w...
In diesem Artikelbeispiel wird der spezifische Co...
Vor ein paar Tagen habe ich einen von Yu Bo getei...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...
Inhaltsverzeichnis Symboldatentyp Der Grund, waru...