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
Mininet Mininet ist eine leichtgewichtige, softwa...
1. Rufen Sie die Methode der übergeordneten Kompo...
Die mobile Version der Website sollte zumindest ü...
Konfigurationsmethode für die kostenlose Installa...
MySQL verwendet Trigger, um das Zeilenlimit der T...
<br />Verwandter Artikel: Analyse der Inform...
Inhaltsverzeichnis Das Verfahren Im Objekt Verste...
1. Um die Abfrage zu optimieren, sollten Sie voll...
In diesem Artikel wird der spezifische Code zur I...
Installieren Sie PostgreSQL 11 auf CentOS 7 Postg...
Crontab ist ein Befehl zum Einrichten einer perio...
Inhaltsverzeichnis Die erste Methode: Router-Link...
Die aktuelle Anforderung lautet: Es gibt eine Sch...
Erste Methode Alibaba Cloud- und Baidu Cloud-Serv...