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

Einführung in die Eigenschaften von B-Tree

B-Baum ist eine allgemeine Datenstruktur. Daneben...

CSS horizontale Zentrierung und Begrenzung der maximalen Breite

Eine CSS-Layout- und Stilfrage: Wie kann man die ...

So verwenden Sie pdf.js zur Vorschau von PDF-Dateien in Vue

Wenn wir auf der Seite eine PDF-Vorschau anzeigen...

Erfahren Sie mehr über JavaScript-Iteratoren

Inhaltsverzeichnis Einführung Wie sieht ein Itera...

Detaillierte Erklärung zur Verwendung von Vue-Mixin

Inhaltsverzeichnis Verwendung von Vue-Mixin Daten...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.24

MySQL ist das beliebteste relationale Datenbankma...

Detailliertes Tutorial zur Verwendung des Prettier Code-Plugins in vscode

Warum prettier verwenden? In großen Unternehmen k...

Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs

Der Befehl „Bash History“ im Linux-System hilft d...

Design: Ein eigenwilliger Designer

<br />In meiner jahrelangen professionellen ...

So verwenden Sie den Linux-Paste-Befehl

01. Befehlsübersicht Der Einfügebefehl fügt die e...

Lösung zur Schnittstellenverformung beim Einstellen der Frameset-Höhe

Derzeit habe ich ein Projekt erstellt, die Schnitt...