MySQL implementiert Oracle-ähnliche Sequenzen Oracle verwendet im Allgemeinen Sequenzen zur Verarbeitung von Primärschlüsselfeldern, während MySQL Inkremente bereitstellt, um ähnliche Zwecke zu erreichen. Bei der tatsächlichen Verwendung zeigt sich jedoch, dass die automatische Inkrementierung von MySQL viele Nachteile aufweist: Es ist unmöglich, Schrittweite, Startindex, Schleife usw. zu steuern. Wenn die Datenbank migriert werden muss, stellt auch der Primärschlüssel ein großes Problem dar. Dieser Artikel beschreibt eine Lösung zur Simulation von Oracle-Sequenzen, wobei der Schwerpunkt in zweiter Linie auf Ideen und Code liegt. Die Verwendung von Oracle-Sequenzen ist nichts anderes als die Verwendung der Pseudospalten .nextval und .currval. Die Grundidee ist: 1. Erstellen Sie eine neue Tabelle in MySQL zum Speichern von Sequenznamen und -werten. 2. Erstellen Sie eine Funktion, um den Wert in der Sequenztabelle abzurufen. Die Einzelheiten lauten wie folgt: Die Tabellenstruktur ist: Tabelle löschen, wenn Sequenz vorhanden ist; Tabellensequenz erstellen ( seq_name VARCHAR(50) NOT NULL, -- Sequenzname current_val INT NOT NULL, -- aktueller Wert increment_val INT NOT NULL DEFAULT 1, -- Schrittlänge (Span) PRIMÄRSCHLÜSSEL (seq_name) ); Durchführung einer Simulation von currval Funktion currval erstellen(v_seq_name VARCHAR(50)) gibt eine Ganzzahl zurück beginnen Deklarieren Sie einen ganzzahligen Wert. Sollwert = 0; Wählen Sie aktuellen Wert in Wert aus aus Sequenz wobei seq_name = v_seq_name; Rückgabewert; Ende; Funktionsverwendung: Implementierung des Simulationsschemas von nextval Funktion nextval erstellen (v_seq_name VARCHAR(50)) Ganzzahl zurückgeben beginnen Aktualisierungsreihenfolge setze aktuellen_Wert = aktuellen_Wert + inkrementellen_Wert wobei seq_name = v_seq_name; gibt currval zurück (v_seq_name); Ende; Die Funktion wird wie folgt verwendet: Funktion, die den Wert einer Einstellung erhöht Funktion „setval“ erstellen (v_seq_name VARCHAR (50), v_new_val INTEGER) gibt eine Ganzzahl zurück beginnen Aktualisierungsreihenfolge setze aktuellen_Wert = v_neuer_Wert wobei seq_name = v_seq_name; gibt currval(Sequenzname) zurück; Ebenso können Funktionen für Schrittweitenoperationen hinzugefügt werden, die hier jedoch nicht beschrieben werden. Achten Sie auf die Syntax, die Datenbankfelder sollten übereinstimmen verwende bvboms; TRENNUNGSZEICHEN $$ Funktion „setval“ erstellen (v_seq_name VARCHAR (50), v_new_val INTEGER) gibt eine Ganzzahl zurück beginnen Aktualisierungsreihenfolge setze aktuellen_Wert = v_neuer_Wert wobei seq_name = v_seq_name; gibt currval(Sequenzname) zurück; Ende $$ TRENNUNGSZEICHEN $$ Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: So implementieren Sie eine MySQL-Master-Slave-Replikation basierend auf Docker
>>: JavaScript zum Erreichen eines einfachen Tab-Leisten-Umschaltens
1. Installieren Sie mutt sudo apt-get install mut...
Der Parameter innodb_autoinc_lock_mode steuert da...
Inhaltsverzeichnis 1. Was ist Pinia? 2. Pinia ist...
Problembeschreibung Wie wir alle wissen, lautet d...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. Id...
Inhaltsverzeichnis Vorwort Initialisieren des Pro...
Warum müssen wir die Browserkompatibilität von CS...
Einführung Im vorherigen Artikel haben wir Redis ...
Rendern Nachdem ich online nach relevanten Inform...
Vorwort Was ist die Rolle eines Agenten? - Mehrer...
Inhaltsverzeichnis 1. Der Unterschied zwischen me...
Code Erklärung 1.1 http:www.baidu.test.com verwen...
#String-Verkettung concat(s1,s2); verkette die St...
Inhaltsverzeichnis 1. Vorteile von Proxy gegenübe...
CUDA-Installation, cuda herunterladen Geben Sie d...