VorwortNachdem dieser Blogbeitrag veröffentlicht wurde, fragten einige Freunde, ob es eine SQL Server-Version gibt. Jetzt gibt es ==》 Portal 1. SzenenwiedergabeWenn in einem ERP-Lagerverwaltungssystem oder anderen Systemen wie 0A mehrere Personen gleichzeitig Bestellnummern generieren, können leicht mehrere Personen an die gleiche Bestellnummer gelangen, was zu irreparablen Verlusten für das Geschäft des Unternehmens führt. 2. So vermeiden Sie nicht eindeutige Bestellnummern in Situationen mit hoher Parallelität Wir können gespeicherte Prozeduren und Datentabellen verwenden, um eine Tabelle und eine gespeicherte Prozedur zu erstellen. Die gespeicherte Prozedur ist für die Generierung der Bestellnummer verantwortlich, und die Tabelle ist für die Behandlung des Eindeutigkeitsproblems verantwortlich. Wenn eine gespeicherte Prozedur eine Bestellnummer generiert, wird die Bestellnummer zuerst in die Tabelle geschrieben und dann das Bestellnummernergebnis angezeigt. Es gibt zwei Situationen, in denen die generierte Bestellnummer in die Tabelle geschrieben wird. Warum? Weil unsere Tabelle einen Primärschlüssel hat (Eindeutigkeit des Primärschlüssels)
3. Der Prozess der Generierung eindeutiger Bestellnummern bei hoher ParallelitätIm Folgenden wird der Vorgang der Generierung einer eindeutigen Bestellnummer anhand von Code und tatsächlichen Vorgängen erläutert. Schritt 1: Erstellen Sie eine Datentabelle und legen Sie das Bestellnummernfeld als Primärschlüssel fest (den Schlüssel zur eindeutigen Bestellnummer).Schritt 2: Erstellen einer gespeicherten Prozedur zum Generieren der Bestellnummer Das Format der generierten Bestellnummer ist: benutzerdefiniertes Präfix + Jahr, Monat, Tag + Suffix (001, 002, 003) CREATE DEFINER = CURRENT_USER PROCEDURE `getbillno`(in BILL_TYPE VARCHAR(3), out BILL_NOP varchar(25)) BEGINNEN 2. Jahr, Monat, Tag und Suffix generieren <br /> Jahr, Monat, Tag ist die aktuelle Systemzeit und der Anfangswert des Suffixes ist 0 DECLARE aktuellesDatum varCHAR (15); DECLARE letzte Nr. INT DEFAULT 0; Wählen Sie DATE_FORMAT (JETZT(), '%Y%m%d') in aktuelles Datum aus. 3. Tabelle abfragen und Bestellnummer der Tabelle abrufen <br /> Tabelle abfragen und neueste Bestellnummer in Bezug auf Präfix und benutzerdefinierten Inhalt abrufen Wählen Sie IFNULL (BILL_NO, 'nicht null') in BILL_NOP VON temp_bill WHERE SUBSTRING(BILL_NO,1,3) = BILL_TYPE und SUBSTRING(RECHNUNGSNUMMER,4,8) =aktuellesDatum BESTELLUNG NACH RECHNUNGSNR. DESC LIMIT 1; 4. Bestellnummer generieren Wenn die im vorherigen Schritt erhaltene Bestellnummer nicht leer ist, beträgt die neu generierte Bestellnummer +1 zur ursprünglichen Bestellnummer. Beispiel: Erhaltene Bestellnummer: UIE20200611015 Wenn die im vorherigen Schritt erhaltene Bestellnummer leer ist, lautet das Suffix der neu generierten Bestellnummer 001 WENN BILL_NOP != '' DANN SETZEN Sie letzte Nummer = KONVERTIEREN (SUBSTRING (BILL_NOP, -3), DECIMAL); WÄHLEN CONCAT(RECHNUNGSTYP,aktuellesDatum,LPAD((letzteNr. + 1),3, '0')) INTO BILL_NOP; ANDERS WÄHLEN CONCAT(RECHNUNGSTYP,aktuellesDatum,LPAD((letzteNr. + 1),3, '0')) INTO BILL_NOP; ENDE, WENN; 5. Fügen Sie die generierte Bestellnummer in die Tabelle ein . <br /> Wenn die gleiche Bestellnummer in der Tabelle vorhanden ist , schlägt das Einfügen in die Tabelle fehl. Wenn die gleiche Bestellnummer nicht in der Tabelle vorhanden ist , ist das Einfügen in die Tabelle erfolgreich. EINFÜGEN IN temp_bill (RECHNUNGSNUMMER, RECHNUNGSTYP) WERTE (RECHNUNGSNUMMER, RECHNUNGSTYP); 6. Eindeutige Bestellnummer zurückgeben <br /> Wenn die Bestellung erfolgreich in die Tabelle eingefügt wurde, wird die eindeutige Bestellnummer zurückgegeben (wenn der vorherige Schritt nicht erfolgreich war, wird dieser Schritt nicht ausgeführt) WÄHLEN SIE BILL_NOP; 4. Ergebnisse der Operation 1. Erstens gibt es keine Daten in meiner Tabelle, also ein Präfix (ich habe eingegeben: UIE) + Jahr, Monat und Tag ( 2 Wenn ich es zum zweiten Mal eingebe, wird das Suffix der neuesten Bestellnummer um 1 erhöht, da die Tabelle Daten enthält 5. Eine Zusammenfassung, die keine Zusammenfassung ist Link zum Download des Codes: mysql_getbillno.sql Code-Screenshot: Dies ist das Ende dieses Artikels über die Implementierung der hohen MySQL-Parallelität zum Generieren eindeutiger Bestellnummern. Weitere Informationen zur hohen MySQL-Parallelität zum Generieren eindeutiger Bestellnummern finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: HTML-Tutorial: DOCTYPE-Abkürzung
>>: Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS
Deinstallieren Sie die installierte Version auf U...
Das MySQL-Protokoll für langsame Abfragen ist seh...
In diesem Artikelbeispiel wird der spezifische Co...
Dieser Artikel konzentriert sich hauptsächlich au...
Übernahme des Geschäfts: Sehen Sie sich die Gehal...
Nachdem ich herausgefunden hatte, dass der vorher...
Ziel dieses Artikels ist es, die Grundfunktionen ...
<br />Frage: Warum ist es nicht empfehlenswe...
Plattformbereitstellung 1. JDK installieren Schri...
Dieser Artikel veranschaulicht anhand von Beispie...
Benutzer- und Gruppenverwaltung 1. Grundlegende K...
In den vorherigen drei Artikeln wurden gängige Si...
Inhaltsverzeichnis Schlossübersicht Sperrklassifi...
1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...
Problemhintergrund: Wenn Sie Docker zum Bereitste...