So generieren Sie MySQL-Beispielcodes für die stapelweise Generierung einer Tabelle mit nicht duplizierten Mobiltelefonnummern

So generieren Sie MySQL-Beispielcodes für die stapelweise Generierung einer Tabelle mit nicht duplizierten Mobiltelefonnummern

Vorwort

In vielen MySQL-Test-Szenarien müssen einige Testdaten zum Testen manuell generiert werden. Dieser Artikel beschreibt ein Verfahren zum Erstellen eines großen MySQL-Tabellenspeichers, der Felder wie Benutzername, Mobiltelefonnummer, Geburtsdatum usw. generieren kann. Sie können auch doppelte Mobiltelefonnummern herausfiltern, um reale Szenarien zu simulieren.

1. Skript generieren

Bauanleitung:

Die folgende gespeicherte Prozedur wird zum Stapelgenerieren einer großen Tabelle mit Feldern wie Benutzername, Mobiltelefonnummer, Geburtsdatum usw. verwendet.

Diese gespeicherte Prozedur verwendet uid als Primärschlüssel, sodass eine kleine Anzahl doppelter Mobiltelefonnummern generiert wird. Ein SQL-Skript zum Filtern doppelter Nummern wird später bereitgestellt.

Wenn Sie auf einmal eindeutige Mobiltelefonnummern generieren möchten, können Sie das folgende Skript ändern, die UID entfernen und die Spalte „Mobiltelefon“ als Primärschlüssel verwenden.

Tabelle löschen, wenn große Tabelle vorhanden ist;

DROP-VERFAHREN, WENN prc_gen_user EXISTIERT;

TABELLE „big_table“ erstellen (
 `uid` int(11) NICHT NULL AUTO_INCREMENT,
 `mobile` char(11) DEFAULT NULL,
 `passwd` varchar(50) DEFAULT NULL,
 `name` varchar(50) DEFAULT NULL,
 `Geschlecht` tinyint DEFAULT NULL,
 `Geburtstag` Datum/Uhrzeit DEFAULT NULL,
 `updated_time` Datum/Uhrzeit DEFAULT NULL,
 PRIMÄRSCHLÜSSEL (`uid`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8;

PROZEDUR ERSTELLEN prc_gen_user(l_cnt int)
BEGINNEN
 DECLARE x INT DEFAULT 0;
 DECLARE p char(11);

 WHILE x < l_cnt
 TUN
 Setze x = x + 1;
 SETZE p =
  concat('1',
   Teilzeichenfolge(cast(3 + (rand() * 10) % 7 AS char(50)), 1, 1),
   rechts (links (trim (cast (rand () AS char (50))), 11), 9));

 INSERT INTO big_table(mobile,
    passwd,
    Name,
    Sex,
    Geburtstag,
    aktualisierte_Zeit)
  WERTE (
   P,
   md5(Decke(rand() * 1000000)),
   Verkettung(
   Teilzeichenfolge(
    'Zhao Qiansun Li Zhou Wu Zheng Wang Feng Chen Zhu Wei Jiang Chen Han yang Zhu Qin du xu er lu shi zhang kong cao yan hua jin wei tao jiang qi xie zou bai shui zan yun yun yun yun fan ENG BAO SHI Tang fei lian cen xue lei ni tang yin luo bi hao wu ein chang le yu shi fu pi qi kang wu yuan bu gu meng Dong Liang du Ruan lan min xi ji ma qiang jia lu lu wei jiang Tong Yan Guo Mei Sheng Lin Diao Zhong xu Qiu Luo Gao xia Cai Tian Fan Hu ling huo yu wan zhi k.iu guan lu mo Cui ji niu gong ',
    floor(1 + 190 * rand()),
    1),
   Teilzeichenfolge(
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::
    floor(1 + 400 * rand()),
    1),
   Teilzeichenfolge(
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::
    floor(1 + 400 * rand()),
    1)),
   Decke(rand() * 10) % 2,
   Datum(
   Jetzt()
   - INTERVALL (20 + Decke(rand() * 100) % 40) JAHR),
   concat('2018-',
    1 + Decke(rand() * 100) % 12,
    '-',
    1 + Decke(rand() * 100) % 28))
 BEI UPDATE EINES DOPPELTEN SCHLÜSSELS updated_time = now();
 ENDE WÄHREND;
ENDE

2. Datenausfüllung

rufe prc_gen_user(1000) auf;
Abfrage OK, 1 Zeile betroffen (1,38 Sek.)

wähle count(*) aus big_table;
+----------+
| Anzahl(*) |
+----------+
| 1000 |
+----------+
1 Zeile im Satz (0,00 Sek.)
Wählen Sie den Autor „Leshami“, „http://blog.csdn.net/leshami“ Blog;
+---------+------------------+
| Autor | Blog |
+---------+------------------+
| Leshami | http://blog.csdn.net/leshami |
+---------+------------------+

3. Filtern doppelter SQL-Anweisungen

LÖSCHEN AUS big_table
WO mobile IN (SELECT mobile
   VON (SELECT u1.mobile
    VON big_table u1
    GRUPPE NACH u1.mobile
    HABEN count(*) > 1) a)
 UND uid NICHT IN (SELECT uid
   VON (AUSWÄHLEN min(u2.uid) AS uid
    VON big_table u2
    GRUPPE NACH u2.mobile
    HABEN count(*) > 1) b);

IV. Sonstiges

Dieser Artikel bezieht sich auf den folgenden Code, der die MySQL-Batch-Erstellung von Benutzerdaten, Name/Handynummer/Geburtstag/Passwort implementiert

DROP-VERFAHREN, WENN EXISTIERT: batchGenerateUsers;


TRENNUNGSZEICHEN $$
PROZEDUR ERSTELLEN batchGenerateUsers()
BEGINNEN
DECLARE x INT Standard 0;
    DECLARE p char(11);
WÄHREND x < 10000 DO
Setze x=x+1;
        SET p=concat('1', cast(3+(rand()*10)%7 as char(1)), right(left(trim(cast(rand() as char (20))), 11),9));
einfügen in meine_Benutzer(Mobiltelefon, Passwort, Name, Geschlecht, Geburtstag, Aktualisierungszeit)
Werte(p,
md5(Decke(rand()*1000000)),
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::
Decke(rand()*10)%2,
Datum (jetzt () - Intervall (20 + Decke (rand () * 100) % 40) Jahr),
concat('2015-', 1+ceiling(rand()*100)%12,'-',1+ceiling(rand()*100)%28))
BEIM UPDATE FÜR DUPLIZIERTE SCHLÜSSEL
aktualisierte_Zeit=jetzt();
ENDE WÄHREND;
ENDE $$


#Aufruf batchGenerateUsers();

und ändern Sie es entsprechend.

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. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So fügen Sie einer großen MySQL-Tabelle eine Spalte hinzu
  • Detaillierte Erklärung zum ordnungsgemäßen Löschen einer großen Tabelle in MySQL
  • Eine kurze Diskussion über die MySQL-Optimierungslösung für große Tabellen
  • Hocheffiziente Abfragemethode für wiederholte Felder in großen MySQL-Tabellen
  • Lösung für das MySQL-Leistungsproblem beim Löschen großer Tabellen
  • So implementieren Sie die Stapellöschung großer Datenmengen in großen MySQL-Tabellen

<<:  So entfernen Sie Wagenrücklaufzeichen aus Text in Linux

>>:  Zusammenfassung der Vorteile von Vue3 gegenüber Vue2

Artikel empfehlen

So kommunizieren Sie mit anderen Benutzern über die Linux-Befehlszeile

Es ist ganz einfach, Nachrichten an andere Benutz...

Verwendung und Analyse des Mysql Explain-Befehls

Mit dem Befehl „mysql explain“ wird gezeigt, wie ...

Einführung in die Verwendung des MySQL mysqladmin-Clients

Inhaltsverzeichnis 1. Überprüfen Sie den Status d...

9 superpraktische CSS-Tipps, die Designern und Entwicklern helfen

Im Kopf eines Webdesigners muss viel Wissen im Zus...

Detaillierte Erklärung der Verwendung von DECIMAL im MySQL-Datentyp

Detaillierte Erklärung der Verwendung von DECIMAL...

Auswahl der MySQL-Tabellentyp-Speicher-Engine

Inhaltsverzeichnis 1. Zeigen Sie die Speicher-Eng...

Inhaltstypbeschreibung, d. h. der Typ des HTTP-Anforderungsheaders

Um den Inhaltstyp zu lernen, müssen Sie zunächst ...

So ändern Sie den Inhalt eines vorhandenen Docker-Containers

1. Docker ps listet Container auf 2. Docker cp ko...

Tiefgreifendes Verständnis des Vue-Übergangs und der Animation

1. Wenn Sie DOM-Elemente einfügen, aktualisieren ...

Docker konfiguriert den Speicherort lokaler Images und Container

Verwenden Sie den Befehl „Find“, um Dateien zu fi...

Detaillierte Erläuterung des verschachtelten Routings im Vue-Router

Inhaltsverzeichnis Schritt 1. Konfigurieren Sie R...

Vue nutzt Amap zur Realisierung der Stadtpositionierung

In diesem Artikel wird der spezifische Code von V...

Lösung für die Ineffektivität der flexiblen Layoutbreite in CSS3

In Projekten wird häufig das zweispaltige Layout ...

Tutorial zum Importieren und Exportieren von Docker-Containern

Hintergrund Die Popularität von Docker hängt eng ...