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 entfernen Sie Wagenrücklaufzeichen aus Text in Linux
>>: Zusammenfassung der Vorteile von Vue3 gegenüber Vue2
Es ist ganz einfach, Nachrichten an andere Benutz...
Inhaltsverzeichnis Ergebnisse erzielen Einführung...
Mit dem Befehl „mysql explain“ wird gezeigt, wie ...
Inhaltsverzeichnis 1. Überprüfen Sie den Status d...
Im Kopf eines Webdesigners muss viel Wissen im Zus...
Detaillierte Erklärung der Verwendung von DECIMAL...
Inhaltsverzeichnis 1. Zeigen Sie die Speicher-Eng...
Um den Inhaltstyp zu lernen, müssen Sie zunächst ...
1. Docker ps listet Container auf 2. Docker cp ko...
1. Wenn Sie DOM-Elemente einfügen, aktualisieren ...
Verwenden Sie den Befehl „Find“, um Dateien zu fi...
Inhaltsverzeichnis Schritt 1. Konfigurieren Sie R...
In diesem Artikel wird der spezifische Code von V...
In Projekten wird häufig das zweispaltige Layout ...
Hintergrund Die Popularität von Docker hängt eng ...